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

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

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 реализации могут выбрать аналогичное поведение для изменений AffectsRendertrueсвойств зависимостей.

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

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

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

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

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