FrameworkElement.MeasureOverride(Size) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生类中重写时,测量子元素在布局中所需的大小,并确定由 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
此元素可提供给子元素的可用大小。 可指定无穷大作为一个值,该值指示元素将调整到适应内容的大小。
返回
此元素基于其对子元素大小的计算确定它在布局期间所需要的大小。
注解
重写MeasureOverride以在元素参与Windows Presentation Foundation (WPF) 布局系统时实现自定义布局大小调整行为。 实现应执行以下操作:
循环访问属于布局的子元素的特定集合,调用 Measure 每个子元素。
在调用) 后Measure,立即获取DesiredSize子 (将其设置为属性。
根据子元素的度量计算父级的净所需大小。
返回值 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“::