FrameworkPropertyMetadata.AffectsMeasure Свойство

Определение

Получает или задает значение, указывающее, может ли свойство зависимостей влиять на передачу измерения во время операций обработчика макета.Gets or sets a value that indicates whether a dependency property potentially affects the measure pass during layout engine operations.

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

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

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

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

Свойства в производных классах PropertyMetadata обычно определяются в объектной модели как доступные для чтения и записи.Properties on 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.

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

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