FrameworkPropertyMetadata.AffectsMeasure 属性

定义

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

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

属性值

如果此元数据所在的依赖属性可能会影响测量过程,则为 true;否则为 false。 默认值为 false

例外

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

示例

以下示例从各种依赖属性字段获取默认元数据,查询其上各种 FrameworkPropertyMetadata 属性的值,并使用信息填充表以实现“元数据浏览器”。

pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
    AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
    AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
    AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
    Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
    IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
    BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
    AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
    AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
    AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
        [Inherits].Text = If((fpm.Inherits), "Yes", "No")
    IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
    BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")

注解

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

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

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

XAML 文本用法

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

适用于

另请参阅