UIElement.Measure(Size) 方法

定義

更新 UIElementDesiredSize。 父項目從本身的 MeasureCore(Size) 實作中呼叫此方法,以形成遞迴配置更新。 呼叫此方法即構成配置更新的第一次傳遞 (「量值」傳遞)。

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

參數

availableSize
Size

可供父項目用來配置子項目的空間。 子項目可以要求比可用空間更大的空間;如果在目前項目的內容模型中能夠捲動,就可能容納提供的大小。

備註

Windows Presentation Foundation (WPF) 中配置位置的計算是由呼叫和 Arrange 呼叫所組成 Measure 。 在 Measure 呼叫期間,元素會使用 availableSize 輸入來判斷其大小需求。 在 Arrange 呼叫期間,專案大小會完成。

availableSize 可以是從零到無限的任何數位。 參與配置的專案應該會傳回指定 availableSize 所需的最小值 Size

第一次具現化版面配置時,它一律會在 之前 Arrange 收到 Measure 呼叫。 不過,在第一個 Arrange 版面配置傳遞之後,它可能會收到沒有 Measure 的呼叫;這可能會在影響只 Arrange 影響的屬性變更 (例如對齊) ,或父系收到 Arrange 沒有 Measure 的 時發生。 Measure呼叫會自動使 Arrange 通話失效。

配置更新會以非同步方式進行,因此主執行緒不會等待每個可能的版面配置變更。 透過屬性值的程式碼後置檢查查詢專案可能不會立即反映與屬性調整大小或配置 (Width 特性互動的屬性變更,例如) 。

注意

您可以使用 方法來強制版 UpdateLayout 面配置更新。 不過,呼叫此方法通常是不必要的,而且可能會導致效能不佳。

版面配置系統會保留兩個不同的配置佇列,一個用於 Measure ,另一個用於 Arrange 。 配置佇列會根據執行配置之元素之視覺化樹狀結構中的元素順序排序;樹狀結構中較高元素位於佇列頂端,以避免由父代中重複變更所造成的備援配置。 重複的專案會自動從佇列中移除,而且如果專案已經經過配置驗證,則會自動從佇列中移除專案。

更新版面配置時,佇列 Measure 會先清空,後面接著 Arrange 佇列。 如果佇列中有 Measure 元素,則佇列中的 Arrange 專案永遠不會排列。

適用於