FrameworkPropertyMetadata.AffectsRender Свойство

Определение

Получает или задает значение, указывающее, может ли свойство зависимостей влиять на общий макет таким способом, который не оказывает специального воздействия на расположение или размеры, но требует перерисовку.

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

Значение свойства

Boolean

Значение true, если свойство зависимостей, в котором существуют эти метаданные, влияет на отрисовку; в противном случае — значение false. Значение по умолчанию — false.

Исключения

Метаданные уже применены к операции свойства зависимостей. Поэтому метаданные запечатаны, а их свойства нельзя задать.

Примеры

Следующий пример получает метаданные по умолчанию из различных полей свойств зависимостей, запрашивает значение различных FrameworkPropertyMetadata свойств и использует сведения для заполнения таблицы для реализации "браузера метаданных".

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

Комментарии

FrameworkElement и FrameworkContentElement включите реализацию OnPropertyChanged , которая отслеживает эффективные изменения значений для всех свойств зависимостей, существующих в элементе. В рамках этой логики свойства зависимостей, которые изменяют действующее значение и имеют метаданные, AffectsRender для которых задано, true инициируют отложенный запрос, чтобы сделать визуальные элементы недействительными для этого элемента. Так как эта реализация на уровне платформы WPF уже существует, обычно не нужно искать свойства зависимостей AffectsRender , если вы не существенно заменяете или не изменяете поведение макета на уровне платформы WPF.

Пользовательские OnPropertyChanged реализации могут иметь аналогичное поведение для изменений свойств зависимостей.AffectsRender true

Свойства любого производного PropertyMetadata класса обычно определяются в объектной модели как чтение и запись. Это позволяет настроить их после инициализации экземпляра. Однако после использования метаданных в рамках вызова RegisterAddOwnerили OverrideMetadataсистемы свойств система свойств запечатывает этот экземпляр метаданных и свойства, которые передают особенности метаданных, теперь считаются неизменяемыми. При попытке задать это свойство после IsSealed того, как он находится true в этом экземпляре метаданных, возникнет исключение.

Использование текста XAML

Члены этого класса обычно не используются в XAML.

Применяется к

См. также раздел