1. 关于布局的规则
    • 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置
    • 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸
    • 不要将界面元素设置成与屏幕坐标相关
    • 容器应将有效控件共享给其子控件
  2. WPF不使用物理像素设置尺寸,而使用设备无关单位,该设备无关单位被定义为1/96英寸,即一英寸96个像素,1英寸=2.54cm,对于96DPI的显示设备,长度单位是1格像素,对于120DPI,单位长度是1.25像素,但长度不变都是1/(96*2.54) cm,常说的分辨率是逻辑像素密度,如1024像素*768像素,分辨率最大为物理分辨率,即物理像素密度
  3. WPF窗口只能包含一个控件,原因是由于Window类继承自ContentControl类,WPF中布局由所用容器决定,WPF窗口应该遵循的原则:
    • 不应显示设定控件的尺寸,而应该使控件尺寸适应内容,可以设置最大最小尺寸来限制可接受的尺寸范围
    • 不应使用屏幕坐标指定控件位置,应当由容器决定
    • 布局容器与它的子控件共享可以使用的空间
    • 可以嵌套布局容
  4. 所有WPF布局控件都继承自System.Windows.Controls.Panel,
    • StackPanel:可以把内部的元素在纵向或者横向上紧密排列,形成栈式布局。
    • WrapPanel:可以根据布局的大小(窗口大小)自动调整控件的位置
    • DockPanel沿一条边缘线来拉伸所包含的控件,这个控件有个最后一个内容控件实现填充所有剩余部分的功能,使用LastChildFill=True属性
  5. 如果有一颗稠密的嵌套元素树,可以通过View|Other Windows|Document Outlline菜单项显示该窗口
  6. Grid面板在预定义的行和列中放置元素,而WrapPanel和StackPanel面板放置元素时会隐式的创建行和列,Grid面板支持三种设置尺寸的方式:
    • 绝对设置尺寸方式,使用设备无关单位设置确切的尺寸,这是最无用的策略
    • Auto,自动设置尺寸方式,最常用,<ColumnDefinition width="Auto">表示匹配列中最宽元素的长度
    • *号,按比例设置尺寸方式,单元格会按比例增加
    • XAML中Grid.ColumnSpan 与Grid.RowSpan: 设置Grid中的控件占用的行数或者列数,用代码Grid.SetColumnSpan和Grid.SetRowSpan可以实现相同功能
  7. 共享尺寸组:使一行或一列 与其他行或列的尺寸相匹配,使用SharedSizeGroup创建共享组
  8. WPF 编程中最常用的标记扩展是支持资源引用的标记扩展(StaticResource 和 DynamicResource)以及支持数据绑定的标记扩展 (Binding)。
    • StaticResource 通过替换已定义资源的值来为属性提供值,key是xaml中定义的资源的key

      <object property="{StaticResource key}" .../>

    • DynamicResource 通过将值推迟为对资源的运行时引用来为属性提供值

WPF 基础的更多相关文章

  1. WPF基础到企业应用系列6——布局全接触

    本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...

  2. WPF 基础到企业应用系列索引

    转自:http://www.cnblogs.com/zenghongliang/archive/2010/07/09/1774141.html WPF 基础到企业应用系列索引 WPF 基础到企业应用系 ...

  3. WPF笔记(1.1 WPF基础)——Hello,WPF!

    原文:WPF笔记(1.1 WPF基础)--Hello,WPF! Example 1-1. Minimal C# WPF application// MyApp.csusing System;using ...

  4. C# WPF基础巩固

    时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 一.写作目的 做C# WPF开发,无论是工作中即将使用,还是只应付跳槽面试,开发基础是非 ...

  5. WPF基础知识、界面布局及控件Binding(转)

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  6. WPF基础知识、界面布局及控件Binding

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  7. WPF 基础面试题及答案(一)

    一 · WPF由哪两部分组成? wpf 由两个主要部分 组成:引擎和编程框架. 1 引擎.wpf引擎是基于窗体的应用程序 图形 视频 音频和文档提供了一个单一的运行时库.重要的是WPF基于矢量的呈现引 ...

  8. WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)

    一. 摘要 首先圣殿骑士非常高兴这个系列能得到大家的关注和支持.这个系列从七月份開始到如今才第七篇,上一篇公布是在8月2日,掐指一算有二十多天没有继续更新了,最主要原因一来是想把它写好,二来是由于近期 ...

  9. WPF基础学习笔记整理 (九) 资源

    基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictio ...

  10. WPF基础学习笔记整理 (八) 命令

    基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应 ...

随机推荐

  1. Laravel-事件简单使用

    Laravel-事件简单使用 标签(空格分隔): php, laravel 注册事件和监听器 生成事件和监听器:php artisan event:generate key => 事件 valu ...

  2. 在Maven中引入spring的DAO、DOMAIN、CONTROLLER、VIEW

    除了mysql外麻雀虽小,五脏俱全. 参照之前的博客建立好的maven项目如图. 第一步 : 向maven项目中的pom文件添加依赖 ,然后maven install

  3. ubuntu 绘制lenet网络结构图遇到的问题汇总

    Couldn't import dot_parser, loading of dot files will not be possible的问题 1 .sudo pip uninstall pypar ...

  4. Eclipse插件Lambok,实现自动生成Java代码

    1.下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar 2.运行Lombok.jar: java -jar  D:\00 ...

  5. Windows 10 的功能更新,版本 1809 - 错误 0x80070002

    一般是双硬盘导致的问题,请打开电脑拆掉系统盘以外的硬盘,一般为固态硬盘和物理硬盘同时使用的电脑会出现此错误.

  6. Android设计模式——抽象工厂方法模式

    1.抽象工厂方法模式:为了创建一组或相互依赖的对象提供一个接口,而不需要指定它们是具体类……无语 2.找个代码看看: 抽象工厂类<成员为接口> /** * 抽象工厂 * */ public ...

  7. Eclipse中合并GIT分支

    合并GIT分支: 1.  切换到主分支: 2.  右击项目——Team——Merge…: 3.  在弹出的Merge框中选择要合并的分支——Merge: 4.  合并后如果出现冲突,右击项目——Tea ...

  8. [置顶] openHAB 体系结构与编程模型 (1) --- 术语

    openHAB 术语 Item : 对硬件设备属性的抽象 ( Items are objects that can be read from or written to in order to int ...

  9. ivew Modal rule校验冲突问题

    问题描述:新建和编辑公用的是一个弹框,打开新建关闭之后,会影响到编辑的弹框.  解决方法:赋值前先重置一下表单  this.$refs["你的表单"].resetFields();

  10. 利用请求的JSON数据创建图形图层

    先看效果图: 包含三个部分:信息窗口(标题是要素的某个属性信息,其余是感兴趣的属性信息).图上图形按照某一属性大小不一显示,图例 1.创建底图用于存放以上三部分: "esri/Map&quo ...