WPF布局

测量

在测量处理过程中,布局系统会告诉 PanelavailableSize。 这是父元素可用来为 Panel 设置其子元素的布局的区域。 Panel 将计算其每个子元素的本机大小属性,如 ClipVisibility

接下来,处理在每个子元素上定义的 FrameworkElement 属性。 这些属性旨在描述基础 UIElement 的大小调整特性,例如其 HeightWidthMarginStyle上述每个属性均可能改变显示元素所必需的空间。 然后, Panel 将对其每个子元素调用 Measure 方法,以便传递相应子元素的可用大小。 可用大小可以是子元素请求的大小,但父元素也可以根据它需要布局的元素数量及其 availableSize 选择限制子元素的大小。

--->Mesure(计算Clip visibility生成ContainSize传递是为确定子控件DesiredSize)

------>MesureCore

----------->MeasureOveride

---------->Mesure(子的)

 

 

排列

在排列处理过程中,布局系统会告诉 Panel 可用于它及其子元素的 finalSize。 在排列处理过程中,父 Panel 元素将计算子元素的 DesiredSize 以及可能会影响元素呈现大小的任何其他边距,并确定每个子元素的边界框。 边界框决定子元素的布局槽的尺寸。 然后,父 Panel 调用每个子元素的 Arrange 方法,以便传递用于设置子元素在面板中的原点及其高度和宽度的 Rect

所有布局都是相对于父元素的。 如果将原点设置为 0,0,会将子元素放置在父面板的左上角,而不是放置在 Silverlight 插件的左上角。

--->Arrange

-------------->ArrangeCore

-------------->ArrangeOverride(生成子级的finalSize)

-------------->Arrange

posted @ 2016-07-26 20:02  高_山_流_水  阅读(171)  评论(0)    收藏  举报