FrameworkPropertyMetadata.AffectsRender Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een afhankelijkheidseigenschap mogelijk van invloed is op de algemene indeling op een bepaalde manier die niet specifiek invloed heeft op rangschikking of meting, maar waarvoor een hertekening is vereist.

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

Waarde van eigenschap

true als de afhankelijkheidseigenschap waarop deze metagegevens bestaan van invloed is op rendering; anders, false. De standaardwaarde is false.

Uitzonderingen

De metagegevens zijn al toegepast op een afhankelijkheidseigenschapsbewerking, zodat metagegevens worden verzegeld en eigenschappen van de metagegevens niet kunnen worden ingesteld.

Voorbeelden

In het volgende voorbeeld worden de standaardmetagegevens opgehaald uit verschillende afhankelijkheidseigenschapsvelden, wordt de waarde van verschillende FrameworkPropertyMetadata eigenschappen erop opgevraagd en wordt de informatie gebruikt om een tabel te vullen om een 'metagegevensbrowser' te implementeren.

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")

Opmerkingen

FrameworkElement en FrameworkContentElement voeg een implementatie toe van OnPropertyChanged die effectieve waardewijzigingen controleert op alle afhankelijkheidseigenschappen die op een element aanwezig zijn. Als onderdeel van deze logica starten afhankelijkheidseigenschappen die de effectieve waarde wijzigen en metagegevens hebben ingesteld AffectsRender op true een uitgestelde aanvraag om de visuals voor dat element ongeldig te maken. Omdat deze WPF implementatie op frameworkniveau al is geïmplementeerd, hoeft u doorgaans niet te zoeken naar afhankelijkheidseigenschappen met AffectsRender, tenzij u het indelingsgedrag op WPF frameworkniveau aanzienlijk vervangt of wijzigt.

Aangepaste OnPropertyChanged implementaties kunnen ervoor kiezen om vergelijkbaar gedrag te hebben voor afhankelijkheidseigenschapswijzigingen.AffectsRendertrue

Eigenschappen voor eventuele afgeleide klassen worden PropertyMetadata doorgaans gedefinieerd in het objectmodel als lezen/schrijven. Dit is zodat ze na de initialisatie van het exemplaar kunnen worden aangepast. Nadat de metagegevens echter worden gebruikt als onderdeel van een aanroep naar Register, AddOwnerof OverrideMetadata, zal het eigenschappensysteem dat metagegevensexemplaren en eigenschappen die de specifieke kenmerken van de metagegevens overbrengen, nu als onveranderbaar beschouwd worden. Als u deze eigenschap probeert in te stellen nadat IsSealedtrue deze zich op dit metagegevensexemplaren bevindt, wordt er een uitzondering gegenereerd.

XAML-tekstgebruik

Leden van deze klasse worden doorgaans niet gebruikt in XAML.

Van toepassing op

Zie ook