WPF布局原则

WPF系统使用基于流布局的布局标准,开发人员创建与显示分辨率和窗口大小无关的用户界面。在不同显示器上可以进行很好的缩放。

首先来谈一谈布局原则:

WPF窗口只能包含一个元素(Window元素属于内容控件,内容控件只允许有一个子元素),所以我们得在窗口中放置一个容器,才能使我们的窗口放置更多的内容。

所以在WPF中,布局由容器决定,使用容器布局需要注意以下几点:

  • 不要显示设置元素的尺寸:可以通过设置最大和最小尺寸来限定范围。
  • 不要使用屏幕坐标来指定元素位置:根据元素在那种容器中,来合理安排元素的位置。如需要元素之间留白,可以使用Margin设置边距。
  • 可以嵌套布局容器:新建WPF程序会默认提供一个Grid容器,但是我们仍可在Grid中添加容器来安排我们的布局。

接下来谈一谈布局过程:

WPF布局包括两个阶段:

  • 测量阶段:容器遍历所有的子元素,询问子元素的期望的尺寸;
  • 排列阶段:在合适的位置放置子元素。

WPF中都的布局容器:

所有WPF容器都继承自"面板(Panel)"抽象类,面板类提供了三个通用属性:

  • BackGround:用于为面板背景色着色的画刷
  • Children:面板中存储的条目集合
  • IsItemHost:面板中的ItemsControl控件是否关联

Panel类的层次结构:

WPF提供的核心布局面板: