FrameworkPropertyMetadata.AffectsParentMeasure 属性

定义

获取或设置一个值,该值表示依赖属性是否会影响布局引擎操作期间其父元素布局的测量过程。

public:
 property bool AffectsParentMeasure { bool get(); void set(bool value); };
public bool AffectsParentMeasure { get; set; }
member this.AffectsParentMeasure : bool with get, set
Public Property AffectsParentMeasure As Boolean

属性值

true 如果存在此元数据的依赖属性可能会特别影响度量值传递的父元素,则为 ;否则为 false。 默认值为 false

例外

已对依赖属性操作应用了元数据,因此元数据已密封,且无法设置其属性。

注解

FrameworkElementFrameworkContentElement 包括 的 OnPropertyChanged 实现,用于监视对元素上存在的所有依赖属性的有效值更改。 作为该逻辑的一部分,更改有效值并将元数据 AffectsParentMeasure 设置为 true 的依赖属性将启动延迟请求,使父元素的视觉对象失效。 由于此 WPF 框架级实现已到位,因此通常不需要查找依赖 AffectsParentMeasure 属性,除非你正在基本替换或修改 WPF 框架级布局行为。

通常,不需要使用 AffectsParentMeasure 向父元素报告属性的更改FrameworkElement,因为元素本身已具有自己的AffectsMeasure属性作为 true。 这通常就足够了,因为子元素中的更改通常会在适当时启动父度量值传递。 AffectsParentMeasure 有时用于 FrameworkContentElement 派生类。 在这种情况下,子元素设置属性,但 FrameworkContentElement 派生类不控制其自己的呈现。 呈现由 FrameworkElement 充当内容宿主的父元素处理。 例如,子元素对 属性值的 Paragraph.KeepWithNext 更改会使父元素的度量无效,因为段落的相对间距可能会更改,并且可能会增加或减小内容主机大小。 因此, Paragraph.KeepWithNext 属性具有元数据,其中 AffectsParentMeasuretrue

作为内容主机呈现逻辑的一部分,内容宿主元素还经常查找依赖项属性中的更改(其中 AffectsParentMeasuretrue)。 例如, TextBox 元素必须响应文本中的某些更改,这些更改可能需要更改自身的边界框 TextBox

自定义 OnPropertyChanged 实现可能会选择对依赖项属性更改具有类似的行为,其中 AffectsParentMeasuretrue

的任何派生类 PropertyMetadata 的属性通常在对象模型中定义为读写。 这样就可以在实例初始化后调整它们。 但是,在元数据作为对 、 或 的调用 Register的一部分使用后, AddOwner属性系统将密封该元数据实例和传达元数据细节的属性现在被视为不 OverrideMetadata可变。 尝试在此元数据实例上设置之后 IsSealed 的 属性 true 将引发异常。

XAML 文本用法

此类的成员通常不在 XAML 中使用。

适用于

另请参阅