FrameworkPropertyMetadata.AffectsRender Właściwość

Definicja

Pobiera lub ustawia wartość, która wskazuje, czy właściwość zależności potencjalnie wpływa na ogólny układ w jakiś sposób, który nie wpływa konkretnie na rozmieszczenie lub pomiar, ale wymaga ponownego narysowania.

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

Wartość właściwości

Boolean

true jeśli właściwość zależności, na której istnieją te metadane, ma wpływ na renderowanie; w przeciwnym razie , false. Wartość domyślna to false.

Wyjątki

Metadane zostały już zastosowane do operacji właściwości zależności, dzięki czemu metadane są zapieczętowane i nie można ustawić właściwości metadanych.

Przykłady

Poniższy przykład uzyskuje domyślne metadane z różnych pól właściwości zależności, wykonuje zapytanie o wartość różnych FrameworkPropertyMetadata właściwości i używa informacji do wypełnienia tabeli w celu zaimplementowania "przeglądarki metadanych".

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

Uwagi

FrameworkElement i FrameworkContentElement obejmują implementację OnPropertyChanged , która monitoruje obowiązujące zmiany wartości we wszystkich właściwościach zależności, które istnieją na elemecie. W ramach tej logiki właściwości zależności, które zmieniają obowiązującą wartość i mają metadane z ustawioną wartością AffectsRender , true zainicjują odroczone żądanie unieważnienia wizualizacji dla tego elementu. Ponieważ ta implementacja na poziomie platformy WPF jest już wdrożona, zazwyczaj nie trzeba szukać właściwości zależności, AffectsRender chyba że znacząco zastępujesz lub modyfikujesz zachowanie układu na poziomie struktury WPF.

Implementacje niestandardowe OnPropertyChanged mogą zdecydować się na podobne zachowanie w przypadku zmian właściwości zależności, w których AffectsRender wartość to true.

Właściwości wszystkich klas pochodnych PropertyMetadata klasy są zwykle definiowane w modelu obiektów jako odczyt-zapis. Dzięki temu można je dostosować po zainicjowaniu wystąpienia. Jednak po użyciu metadanych w ramach wywołania metody Register, AddOwnerlub OverrideMetadatasystem właściwości przypieczętuje, że wystąpienie metadanych i właściwości przekazujące szczegóły metadanych są teraz uznawane za niezmienne. Próba ustawienia tej właściwości po IsSealed wystąpieniu true tych metadanych spowoduje wystąpienie wyjątku.

Użycie tekstu w języku XAML

Składowe tej klasy nie są zwykle używane w języku XAML.

Dotyczy

Zobacz też