FrameworkPropertyMetadata.AffectsRender Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállít egy értéket, amely azt jelzi, hogy egy függőségi tulajdonság esetleg hatással van-e az általános elrendezésre olyan módon, amely nem befolyásolja kifejezetten az elrendezést vagy a mérést, de újra kell írni.
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
Tulajdonság értéke
trueha a metaadatok alapjául szolgáló függőségi tulajdonság hatással van a renderelésre; egyéb esetben. false Az alapértelmezett érték a false.
Kivételek
A metaadatokat már alkalmazták egy függőségi tulajdonság műveletére, így a metaadatok le vannak zárva, és a metaadatok tulajdonságai nem állíthatók be.
Példák
Az alábbi példa lekérte az alapértelmezett metaadatokat a különböző függőségi tulajdonságmezőkből, lekérdezi a rajta lévő különböző FrameworkPropertyMetadata tulajdonságok értékét, és az információk segítségével feltölt egy táblát egy "metaadat-böngésző" implementálásához.
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")
Megjegyzések
FrameworkElement és FrameworkContentElement olyan implementációt is tartalmaz, amely figyeli OnPropertyChanged az elemen található összes függőségi tulajdonság tényleges értékváltozásait. Ennek a logikának a részeként a tényleges értéket módosító és a metaadatokkal rendelkező AffectsRendertrue függőségi tulajdonságok késleltetett kérést kezdeményeznek az adott elem vizualizációinak érvénytelenítésére. Mivel ez a WPF keretrendszerszintű implementáció már létezik, általában nem kell függőségi tulajdonságokat keresnie AffectsRender, kivéve, ha jelentősen lecseréli vagy módosítja a WPF keretrendszerszintű elrendezés viselkedését.
Az egyéni OnPropertyChanged implementációk dönthetnek úgy, hogy hasonló viselkedést alkalmaznak a függőségi tulajdonság változásaihoz, ahol AffectsRender van true.
A származtatott osztályok PropertyMetadata tulajdonságai általában írás-olvasásként vannak definiálva az objektummodellben. Így a példány inicializálása után módosíthatók. Ha azonban a metaadatok a tulajdonságrendszer meghívásának RegisterAddOwnerrészeként kerülnek használatba, OverrideMetadataa rendszer zárolja, hogy a metaadatok példánya és a metaadatok jellemzőit továbbadó tulajdonságok mostantól megváltoztathatatlannak minősülnek. Ha megkísérli beállítani ezt a tulajdonságot, miután IsSealed ezen a metaadat-példányon van, true kivételt fog eredményezni.
XAML-szöveghasználat
Az osztály tagjait általában nem használják az XAML-ben.