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 应为元素自己的所需大小,然后成为当前元素的父元素的度量值输入。 在到达页面的根元素之前,这一过程会继续执行布局系统。

在此过程中,子元素可能会返回比初始availableSize元素更大的DesiredSize大小,以指示子元素需要更多空间。 可以通过引入可滚动区域、调整父控件大小、建立某种堆积顺序或任何数量的用于测量或排列内容的解决方案,在你自己的实现中处理此问题。

重要

在此过程中,元素应对每个子元素进行调用 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“::

适用于