FrameworkPropertyMetadata.AffectsRender Свойство

Определение

Получает или задает значение, указывающее, может ли свойство зависимостей влиять на общий макет таким способом, который не оказывает специального воздействия на расположение или размеры, но требует перерисовку.Gets or sets a value that indicates whether a dependency property potentially affects the general layout in some way that does not specifically influence arrangement or measurement, but would require a redraw.

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.true if the dependency property on which this metadata exists affects rendering; otherwise, false. Значение по умолчанию — false.The default is false.

Исключения

Метаданные уже применены к операции свойства зависимостей. Поэтому метаданные запечатаны, а их свойства нельзя задать.The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.

Примеры

Следующий пример получает метаданные по умолчанию из различных полей свойств зависимости, запрашивает значения различных FrameworkPropertyMetadata свойств в нем и использует эти сведения для заполнения таблицы для реализации "браузера метаданных".The following example obtains the default metadata from various dependency property fields, queries the value of various FrameworkPropertyMetadata properties on it, and uses the information to populate a table to implement a "metadata browser".

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 реализацию, которая отслеживает действующие изменения значений для всех свойств зависимостей, существующих в элементе.FrameworkElement and FrameworkContentElement include an implementation of OnPropertyChanged that monitors effective value changes to all dependency properties that exist on an element. В рамках этой логики свойства зависимостей, которые изменяют эффективное значение и имеют AffectsRender метаданные со true значением, будут инициировать отложенный запрос на недействительность визуальных элементов для этого элемента.As part of that logic, dependency properties that change effective value and have metadata with AffectsRender set to true will initiate a deferred request to invalidate the visuals for that element. Поскольку такая реализация на уровне платформы WPF уже существует, вам обычно не нужно искать свойства AffectsRender зависимостей, если только вы не заменили или не измените поведение макета на уровне платформы WPF.Because this WPF framework-level implementation is already in place, you typically do not need to look for dependency properties with AffectsRender unless you are substantially replacing or modifying the WPF framework-level layout behavior.

В OnPropertyChanged пользовательских реализациях может возникать схожее поведение при изменении свойств зависимостей AffectsRender , trueгде свойство имеет значение.Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsRender is true.

Свойства в любых производных классах PropertyMetadata обычно определяются в объектной модели как доступные для чтения и записи.Properties on any derived classes of PropertyMetadata are typically defined in the object model as read-write. Это значит, что их можно скорректировать после инициализации экземпляра.This is so they can be adjusted after initialization of the instance. Однако после того, как метаданные будут потреблены как часть вызова метода Register, AddOwnerили OverrideMetadata, система свойств зазапечатана, что экземпляр метаданных и свойства, передающие особенности метаданных, теперь считаются неизменяемыми.However, after the metadata is consumed as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and properties that convey the specifics of the metadata are now considered immutable. Попытка установить это свойство после IsSealed true в этом экземпляре метаданных вызовет исключение.Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

Использование текста XAMLXAML Text Usage

Члены этого класса обычно не используются в XAMLXAML.Members of this class are not typically used in XAMLXAML.

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

Дополнительно