FrameworkElement.MeasureOverride(Size) 方法

定義

當在衍生類別中覆寫時,測量子項目所需配置的大小,並決定 FrameworkElement 衍生類別的大小。

protected:
 virtual System::Windows::Size MeasureOverride(System::Windows::Size availableSize);
protected virtual System.Windows.Size MeasureOverride (System.Windows.Size availableSize);
abstract member MeasureOverride : System.Windows.Size -> System.Windows.Size
override this.MeasureOverride : System.Windows.Size -> System.Windows.Size
Protected Overridable Function MeasureOverride (availableSize As Size) As Size

參數

availableSize
Size

此項目可提供給子項目使用的大小。 此值可以指定為無限大,表示項目會隨著可用的內容而改變大小。

傳回

Size

大小,此項目會依據其計算子項目的大小結果,決定配置時所需的大小。

備註

覆寫 MeasureOverride 以實作元素的自訂配置調整大小行為,因為它參與Windows Presentation Foundation (WPF) 版面配置系統。 您的實作應該執行下列動作:

  1. 逐一查看屬於配置一部分之子系的特定子系集合,在每個子專案上呼叫 Measure

  2. 在呼叫) 之後 Measure ,立即取得 DesiredSize 子系 (此設定為屬性。

  3. 根據子項目的度量,計算父系的淨所需大小。

的傳回值 MeasureOverride 應該是元素本身所需的大小,然後成為目前元素之父元素的量值輸入。 這個相同的程式會繼續執行版面配置系統,直到到達頁面的根項目為止。

在這個程式中,子項目可能會傳回大於 DesiredSize 初始 availableSize 的大小,以指出子項目想要更多空間。 這可以藉由引進可捲動區域、調整父控制項的大小、建立某種堆疊順序,或任何數目的解決方案來測量或排列內容,以在您自己的實作中處理。

重要

元素應該在此程式期間在每個子系上呼叫 Measure ,否則子項目的大小不會正確或排列。

給繼承者的注意事項

下列非編譯器代碼會顯示此實作模式。 VisualChildren 代表您自己的專案應該定義的子系可列舉集合屬性。 屬性可以命名為任何專案。 VisualChildren 是此範例的預留位置名稱, VisualChildren 不是 WPF 所提供的 API 或命名模式的一部分。

:::code language=「csharp」 source=「~/snippets/csharp/System。Windows/ComponentResourceKey/.ctor/corepseudocode.cs「 id=」Snippetfemeasureoverride「::::code language=」vb「 source=」~/snippets/visualbasic/VS_Snippets_Wpf/CorePseudocode/visualbasic/corepseudocode.vb「 id=」Snippetfemeasureoverride「::

適用於