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 元素树根或附近的元素上本地设置,然后让其值继承给同时拥有该属性的子元素的逻辑树中的所有元素。 默认情况下不启用属性值继承,并且启用它确实会产生一些性能影响。 有关详细信息,请参阅 属性值继承

注释

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

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

XAML 文本用法

此类的成员通常不用于 XAML。

适用于

另请参阅