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. 剑指offer——02替换空格(Python3)

    思路:Python列表中实现字符串的替换,涉及到频繁的插入操作,在数据结构中线性表分为顺序表和链表,顺序表的适合频繁的查询,链表适合频繁的插入和删除.综上所述,本题使用链表来实现. 我们从字符串的后面 ...

  2. c++面向对象程序设计 谭浩强 第五章答案

    1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>&g ...

  3. BZOJ 4184 线段树+高斯消元

    思路: 线段树表示的是时间 每回最多log个段 区间覆盖 一直到叶子 的线性基 xor 一下 就是答案 一开始没有思路 看了这篇题解 豁然开朗 http://www.cnblogs.com/joyou ...

  4. popupwindows

    <1>.能够点击popupwindow 内部空间,外部触摸消失,外部点击事件. package myapplication.com.myapplication; import androi ...

  5. Golden Gate 检查点

    检查点是记录读写位置信息,在恢复时候要用到,保证事务的完整性. 两种存储方式: 存放在dirchk下 存放在指定的checkpoint table Replicat: nodbcheckpoint: ...

  6. MAC 下的pycharm部分使用方法

    1.在创建之初,可以选择自己想要使用的python版本. 如果之后想要更换Python版本,可以通过~~~更换选择Python版本. 2.创建.py文件,点击文件名,出现如下界面: 点击new--py ...

  7. CorelDRAW X8制作金属质感3D立体按钮

    本教程教您使用CorelDRAW X8制作金属质感3D立体按钮.绘图中主要应用渐变填充技巧为立体按钮表现物体质感和丰富的色彩变化,最后实现的效果也是不错的,是很实用的案例,教程难度一般,完成图如下: ...

  8. sudo日志审计

    一般企业生产环境都会用跳板机把操作日志记录下来,不过有些公司内部的测试机可以用本机的sudo日志审计功能将执行的sudo命令保存日志. 为什么要使用sudo审计,因为可以通过sudo授权给普通用户执行 ...

  9. NodeJS踩坑实录

    nodejs的常用api url 主要是配置一系列和路径相关的信息 url.parse(urlString[, parseQueryString[, slashesDenoteHost]]) 将一个U ...

  10. 2019-03-25 Python Pandas 基本操作

    新建表 data1 = { "name": ["Tom", "Bob", "Mary", "James&quo ...