FrameworkPropertyMetadata.AffectsRender Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine Abhängigkeitseigenschaft potenziell das allgemeine Layout in irgendeiner Weise beeinflusst, die keine spezielle Anordnung oder Messung beeinflusst, sondern eine Neuzeichnen erfordert.

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

Eigenschaftswert

truewenn sich die Abhängigkeitseigenschaft, von der diese Metadaten vorhanden sind, auf das Rendern auswirkt; andernfalls . false Der Standardwert lautet false.

Ausnahmen

Die Metadaten wurden bereits auf einen Abhängigkeitseigenschaftsvorgang angewendet, sodass Metadaten versiegelt sind und Eigenschaften der Metadaten nicht festgelegt werden können.

Beispiele

Im folgenden Beispiel werden die Standardmetadaten aus verschiedenen Abhängigkeitseigenschaftsfeldern abgerufen, der Wert verschiedener FrameworkPropertyMetadata Eigenschaften abgefragt und die Informationen zum Auffüllen einer Tabelle verwendet, um einen "Metadatenbrowser" zu implementieren.

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

Hinweise

FrameworkElement und FrameworkContentElement fügen Sie eine Implementierung davon OnPropertyChanged ein, die effektive Wertänderungen an allen Abhängigkeitseigenschaften überwacht, die für ein Element vorhanden sind. Als Teil dieser Logik werden Abhängigkeitseigenschaften, die einen effektiven Wert ändern und metadaten mit AffectsRender festgelegtem Wert haben true , eine verzögerte Anforderung initiieren, um die visuellen Elemente für dieses Element ungültig zu machen. Da diese Implementierung auf WPF-Frameworkebene bereits vorhanden ist, müssen Sie in der Regel nicht nach Abhängigkeitseigenschaften AffectsRender suchen, es sei denn, Sie ersetzen oder ändern das Layoutverhalten auf WPF-Frameworkebene erheblich.

Benutzerdefinierte OnPropertyChanged Implementierungen können ein ähnliches Verhalten für Abhängigkeitseigenschaftsänderungen aufweisen.AffectsRendertrue

Eigenschaften für abgeleitete Klassen PropertyMetadata werden in der Regel im Objektmodell als Lese-/Schreibzugriff definiert. Dies ist so, dass sie nach der Initialisierung der Instanz angepasst werden können. Nachdem die Metadaten jedoch als Teil eines Aufrufs Registervon , AddOwneroder , oder OverrideMetadata, das Eigenschaftensystem verwendet wird, wird die Metadateninstanz und -eigenschaften, die die Besonderheiten der Metadaten vermitteln, jetzt als unveränderlich betrachtet. Wenn Sie versuchen, diese Eigenschaft festzulegen, IsSealedtrue wird in dieser Metadateninstanz eine Ausnahme ausgelöst.

XAML-Textverwendung

Elemente dieser Klasse werden in der Regel nicht in XAML verwendet.

Gilt für:

Weitere Informationen