FrameworkPropertyMetadata.AffectsParentArrange 屬性

定義

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

public:
 property bool AffectsParentArrange { bool get(); void set(bool value); };
public bool AffectsParentArrange { get; set; }
member this.AffectsParentArrange : bool with get, set
Public Property AffectsParentArrange As Boolean

屬性值

Boolean

如果這個中繼資料所在的相依性屬性可能會特別影響其父項目的排列傳遞,則為 true;否則為 false。 預設為 false

例外狀況

中繼資料已套用至相依性屬性作業,因此中繼資料已密封,而且無法設定中繼資料的屬性。

備註

FrameworkElementFrameworkContentElement 包含 的實作 OnPropertyChanged ,可監視存在於專案上之所有相依性屬性的有效值變更。 作為該邏輯的一部分,變更有效值的相依性屬性,並設定 true 為 的 AffectsParentArrange 中繼資料將會起始延遲要求,使父元素的視覺效果失效。

一般而言,您不需要使用 AffectsParentArrange 將屬性的 FrameworkElement 變更報告給父元素,因為專案本身已經擁有它本身 AffectsArrange 做為 true 。 這通常已足夠,因為子項目中的變更通常會在適當時起始父排列。 AffectsParentArrange 有時用於 FrameworkContentElement 衍生類別。 在此情況下,子專案會設定屬性,但 FrameworkContentElement 衍生類別不會控制它自己的轉譯。 轉譯是由 FrameworkElement 做為內容主機的父元素所處理。 例如,子項目對附加屬性的值所做的 FixedPage.Left 變更會使父系的排列失效,因為必須變更父系中子系的位置。 因此, FixedPage.Left 附加屬性具有中繼資料,其中 AffectsParentArrangetrue 。 另一個範例是 Padding ;當這個屬性變更時,父系可能會根據可用空間變更子系的位置。

由於這個 WPF 架構層級實作已就緒,因此您通常不需要尋找 相依性屬性, AffectsParentArrange 除非您大幅取代或修改 WPF 架構層級配置行為。

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

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

XAML 文字使用方式

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

適用於

另請參閱