FrameworkPropertyMetadata.AffectsMeasure 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 vlastnost závislosti potenciálně ovlivňuje průchod míry během operací modulu rozložení.
public:
property bool AffectsMeasure { bool get(); void set(bool value); };
public bool AffectsMeasure { get; set; }
member this.AffectsMeasure : bool with get, set
Public Property AffectsMeasure As Boolean
Hodnota vlastnosti
true
pokud vlastnost závislosti, na které tato metadata existuje, může ovlivnit průchod míry; 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 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 zahrňte implementaci, která monitoruje efektivní změny hodnot ve všech vlastnostech OnPropertyChanged závislostí, které existují v elementu. V rámci této logiky vlastnosti závislostí, které mění efektivní hodnotu a mají metadata s AffectsMeasure nastavenou true
nastavenou, 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ž proběhla, obvykle nemusíte hledat vlastnosti AffectsMeasure závislostí, pokud výrazně nenahrazovat nebo upravovat chování rozložení na úrovni architektury WPF.
Vlastní OnPropertyChanged implementace se můžou rozhodnout mít podobné chování u změn vlastností závislostí, kde AffectsMeasure je true
.
Vlastnosti odvozených tříd jsou PropertyMetadata obvykle definovány v objektovém modelu jako read-write. To znamená, že je možné je 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é vyjadřují specifika metadat, jsou nyní považovány za neměnné. Při pokusu o nastavení této vlastnosti po IsSealed výskytu true
této instance metadat dojde k výjimce.
Použití textu XAML
Členové této třídy se obvykle nepoužívají v XAML.