FrameworkPropertyMetadata.AffectsRender Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která označuje, zda závislost vlastnost potenciálně ovlivňuje obecné rozložení nějakým způsobem, který nemá konkrétní vliv na uspořádání nebo měření, ale vyžaduje překreslení.
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
Hodnota vlastnosti
true
Pokud závislost vlastnost, na které tato metadata existuje, ovlivňuje vykreslování; v opačném případě . false
Výchozí formát je false
.
Výjimky
Metadata již byla použita pro operaci vlastnosti závislosti, takže metadata jsou zapečetěna a vlastnosti metadat nelze nastavit.
Příklady
Následující příklad získá výchozí metadata z různých polí vlastností závislostí, dotazuje se na hodnotu různých FrameworkPropertyMetadata vlastností a používá informace k naplnění tabulky k implementaci "prohlížeče metadat".
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")
Poznámky
FrameworkElement a FrameworkContentElement zahrnují implementaci OnPropertyChanged , která monitoruje změny efektivní hodnoty všech vlastností závislostí, které existují v elementu. V rámci této logiky vlastnosti závislostí, které mění efektivní hodnotu a mají metadata AffectsRender nastavena na , true
zahájí odložený požadavek na zneplatnění vizuálů pro daný prvek. Vzhledem k tomu, že tato implementace na úrovni architektury WPF je již zavedená, obvykle nemusíte hledat vlastnosti závislostí s AffectsRender , pokud podstatně nenahrazovat nebo upravovat chování rozložení na úrovni architektury WPF.
Vlastní OnPropertyChanged implementace se můžou rozhodnout pro podobné chování při změnách vlastností závislostí, kde AffectsRender je true
.
Vlastnosti všech odvozených tříd jsou PropertyMetadata obvykle definovány v objektovém modelu jako pro čtení i zápis. Je to proto, aby bylo možné je po inicializaci instance upravit. Poté, co jsou metadata využita jako součást volání Register, AddOwnernebo OverrideMetadata, systém vlastností zapečetí, že instance metadat a vlastnosti, které vyjadřují specifika metadat, jsou nyní považovány za neměnné. Pokus o nastavení této vlastnosti po IsSealed je true
na této instanci metadat vyvolá výjimku.
Použití textu XAML
Členy této třídy se obvykle nepoužívají v jazyce XAML.