FrameworkPropertyMetadata.Inherits 属性

定义

获取或设置一个值,该值指示依赖属性的值是否可继承。

public:
 property bool Inherits { bool get(); void set(bool value); };
public bool Inherits { get; set; }
member this.Inherits : bool with get, set
Public Property Inherits 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")

注解

属性值继承是 WPF 框架级别的 WPF 属性系统的一项功能,通过此特性,可以在 XAML 元素树根或根元素根附近的元素上本地设置某些依赖属性,然后由同样具有该属性的子元素的逻辑树中的所有元素继承其值。 默认情况下不启用属性值继承,启用它确实会产生一些性能影响。 有关详细信息,请参阅属性值继承

注意

尽管属性值继承似乎适用于未附加的依赖属性,但运行时树中通过某些对象-对象划分的非附加属性的继承行为是未定义的。 如果要在元数据中指定 Inherits,请始终使用 RegisterAttached 来注册属性。

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

XAML 文本用法

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

适用于

另请参阅