FrameworkPropertyMetadata.AffectsArrange 屬性

定義

取得或設定值,指出相依性屬性在配置引擎作業期間,是否可能會影響排列傳遞。

public:
 property bool AffectsArrange { bool get(); void set(bool value); };
public bool AffectsArrange { get; set; }
member this.AffectsArrange : bool with get, set
Public Property AffectsArrange 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 ,可監視存在於專案上之所有相依性屬性的有效值變更。 做為該邏輯的一部分,變更有效值的相依性屬性,並設定 true 為 的 AffectsArrange 中繼資料將會起始延遲要求,使該專案的視覺效果失效, (呼叫 InvalidateArrange) 。 由於這個 WPF 架構層級實作已就緒,因此您通常不需要尋找 相依性屬性, AffectsArrange 除非您大幅取代或修改 WPF 架構層級配置行為。

自訂 OnPropertyChanged 實作可能會針對相依性屬性變更選擇有類似的行為,其中 是 AffectsArrangetrue

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

XAML 文字使用方式

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

適用於

另請參閱