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á určuje, zda vlastnost závislosti 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
truepokud vlastnost závislosti, na které tato metadata existuje, má vliv na vykreslování; v opačném případě . false Výchozí hodnota je false.
Výjimky
Metadata již byla použita na operaci vlastnosti závislosti, takže metadata jsou zapečetěná 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 pomocí informací naplní tabulku 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 zahrnout implementaci OnPropertyChanged , která monitoruje efektivní změny hodnot ve všech vlastnostech závislostí, které existují v elementu. V rámci této logiky vlastnosti závislostí, které mění efektivní hodnotu a mají metadata s nastaveným AffectsRender nastavením true , zahájí odložený požadavek na zneplatnění vizuálů pro daný prvek. Vzhledem k tomu, že implementace na úrovni architektury WPF (Windows Presentation Foundation) je již zavedená, obvykle nemusíte hledat vlastnosti AffectsRender závislostí, pokud podstatně nenahrazujete nebo upravujete chování rozložení na úrovni architektury WPF (Windows Presentation Foundation).
Vlastní OnPropertyChanged implementace můžou mít podobné chování pro změny vlastností závislostí, kde AffectsRender je true.
Vlastnosti pro všechny odvozené třídy PropertyMetadata jsou obvykle definovány v objektovém modelu jako čtení a zápis. To znamená, že je lze upravit po inicializaci instance. Jakmile se však metadata spotřebují jako součást volání Register, AddOwnernebo OverrideMetadata, systém vlastností zapečetí, že instance metadat a vlastnosti, které předávají specifika metadat, jsou nyní považovány za neměnné. Při pokusu o nastavení této vlastnosti po IsSealed použití true této instance metadat dojde k výjimce.
Použití textu XAML
Členy této třídy se obvykle nepoužívají v JAZYCE XAML.