FrameworkPropertyMetadata.AffectsRender 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,指出相依性屬性是否可能影響一般的版面配置,而不會特別影響排列或測量,但可能需要重新繪製。
public:
property bool AffectsRender { bool get(); void set(bool value); };
public bool AffectsRender { get; set; }
member this.AffectsRender : bool with get, set
Public Property AffectsRender 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")
備註
FrameworkElement 和 FrameworkContentElement 包含 的實作 OnPropertyChanged ,可監視存在於專案上之所有相依性屬性的有效值變更。 作為該邏輯的一部分,變更有效值的相依性屬性,並設定 true
為 的 AffectsRender 中繼資料將會起始延遲要求,使該專案的視覺效果失效。 由於這個 WPF 架構層級實作已就緒,因此您通常不需要尋找 相依性屬性, AffectsRender 除非您大幅取代或修改 WPF 架構層級配置行為。
自訂 OnPropertyChanged 實作可能會針對相依性屬性變更選擇有類似的行為,其中 是 AffectsRendertrue
。
的任何衍生類別 PropertyMetadata 的屬性通常會在物件模型中定義為讀寫。 這是為了讓實例在初始化之後進行調整。 不過,在呼叫 Register 、 AddOwner 或 OverrideMetadata 時取用中繼資料之後,屬性系統會密封中繼資料實例和傳達中繼資料特性的屬性現在會被視為不可變。 嘗試在此中繼資料實例上設定此屬性之後 IsSealedtrue
,將會引發例外狀況。
XAML 文字使用方式
這個類別的成員通常不會用於 XAML。