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 的屬性通常會在物件模型中定義為讀寫。 這是為了讓實例在初始化之後進行調整。 不過,在呼叫 RegisterAddOwnerOverrideMetadata 時取用中繼資料之後,屬性系統會密封中繼資料實例和傳達中繼資料特性的屬性現在會被視為不可變。 嘗試在此中繼資料實例上設定此屬性之後 IsSealedtrue ,將會引發例外狀況。

XAML 文字使用方式

這個類別的成員通常不會用於 XAML。

適用於

另請參閱