FrameworkPropertyMetadata.AffectsArrange Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine Abhängigkeitseigenschaft möglicherweise die Anordnungsphase während Layout-Engine-Vorgängen beeinflusst.

public:
 property bool AffectsArrange { bool get(); void set(bool value); };
public bool AffectsArrange { get; set; }
member this.AffectsArrange : bool with get, set
Public Property AffectsArrange As Boolean

Eigenschaftswert

true, wenn die Abhängigkeitseigenschaft, für die diese Metadaten vorhanden sind, möglicherweise die Anordnungsphase beeinflusst, andernfalls false. Der Standardwert ist false.

Ausnahmen

Die Metadaten wurden bereits auf einen Vorgang der Abhängigkeitseigenschaft angewendet, sodass Metadaten versiegelt sind und keine Eigenschaften für Metadaten festgelegt werden können.

Beispiele

Das folgende Beispiel ruft die Standardmetadaten aus verschiedenen Abhängigkeitseigenschaftenfeldern ab, fragt den Wert verschiedener FrameworkPropertyMetadata Eigenschaften ab und verwendet die Informationen, um eine Tabelle aufzufüllen, 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 schließen eine Implementierung von ein OnPropertyChanged , die effektive Wertänderungen an allen Abhängigkeitseigenschaften überwacht, die für ein Element vorhanden sind. Als Teil dieser Logik initiieren Abhängigkeitseigenschaften, die den effektiven Wert ändern und Metadaten mit AffectsArrange festgelegt haben, true eine verzögerte Anforderung, um die Visuals für dieses Element ungültig zu machen (ein Aufruf von InvalidateArrange). Da diese Implementierung auf WPF-Frameworkebene bereits vorhanden ist, müssen Sie in der Regel nicht nach Abhängigkeitseigenschaften mit AffectsArrange suchen, es sei denn, Sie ersetzen oder ändern das Layoutverhalten auf WPF-Frameworkebene wesentlich.

Benutzerdefinierte OnPropertyChanged Implementierungen können ein ähnliches Verhalten für Abhängigkeitseigenschaftenänderungen aufweisen, wobei AffectsArrange der Wert ist true.

Eigenschaften für abgeleitete Klassen von PropertyMetadata werden im Objektmodell in der Regel als Lese-/Schreibzugriff definiert. Dadurch können sie nach der Initialisierung der Instanz angepasst werden. Nachdem die Metadaten jedoch im Rahmen eines Aufrufs Registervon , AddOwneroder OverrideMetadataverwendet wurden, versiegelt das Eigenschaftensystem, dass metadateninstanz und -eigenschaften, die die Besonderheiten der Metadaten vermitteln, jetzt als unveränderlich angesehen werden. Der Versuch, diese Eigenschaft festzulegen, nachdem IsSealed sich true auf dieser Metadateninstanz befindet, löst eine Ausnahme aus.

XAML-Textverwendung

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

Gilt für:

Weitere Informationen