1. 程式人生 > >WPF中MeasureOverride ArrangeOverride 的理解

WPF中MeasureOverride ArrangeOverride 的理解

1. Measure Arrange這兩個方法是UIElement的方法

    MeasureOverride ArrangeOverride這兩個方法是FrameworkElement的方法,FrameworkElement是UIElement的子類

    MeasureOverride傳入父容器分配的可用空間,返回該容器根據其子元素大小計算確定的在佈局過程中所需的大小。

    ArrangeOverride傳入父容易最終分配的控制元件大小,返回使用的實際大小

2. MeasureOverride 用於計算本身及其子控制元件的大小

    ArrangeOverride用於佈局本身及其子控制元件的位置和大小

3. WPF佈局系統大概分為兩步:Measure和Arrange

    Measure方法自頂而下,遞迴呼叫各子控制元件的Measure方法,Measure方法會把該控制元件所需的大小控制元件存在desired size屬性中,控制元件根據各子控制元件的desired size 屬性確定自身空間大小,並返回自己的desired size 

    Arrange方法發生在Measure中,傳入Measure方法計算到的大小,利用控制元件的位置設定分配子控制元件的位置

簡單來說,這兩個方法一個管大小,一個管佈局,都需要呼叫子類的Measure和Measure

codeproject的這篇文章講的很條理https://www.codeproject.com/Articles/1034445/Understanding-MeasureOverride-and-ArrangeOverride