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 元素樹根節點或附近本地設定某些相依屬性,並由所有擁有該屬性的子元素組成的邏輯樹中元素繼承其值。 財產價值繼承預設並非啟用,啟用後確實會對效能產生一些影響。 詳情請參閱 財產價值繼承

Note

雖然屬性值繼承看似適用於非附加的相依屬性,但透過執行樹中某些物件-物件劃分,非附加屬性的繼承行為尚未定義。 一律使用 RegisterAttached 來註冊您在中繼資料中指定 Inherits 的屬性。

衍生 PropertyMetadata 類別的屬性通常在物件模型中定義為讀寫。 這是為了在實例初始化後可以調整它們。 然而,當元資料作為呼叫 RegisterAddOwnerOverrideMetadata的一部分而被消耗後,屬性系統會封存該元資料實例,而傳達元資料細節的屬性則被視為不可變。 嘗試在這個元資料實例之後IsSealedtrue設定此屬性,會觸發例外。

XAML 文字使用

此類別的成員通常不在 XAML 中使用。

適用於

另請參閱