FrameworkPropertyMetadata.AffectsRender Tulajdonság

Definíció

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.

A következőre érvényes:

Lásd még