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