Поделиться через


FrameworkPropertyMetadata.AffectsArrange Свойство

Определение

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

public:
 property bool AffectsArrange { bool get(); void set(bool value); };
public bool AffectsArrange { get; set; }
member this.AffectsArrange : bool with get, set
Public Property AffectsArrange 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 для всех свойств зависимостей, существующих в элементе. В рамках этой логики свойства зависимостей, которые изменяют действующее значение и имеют метаданные с AffectsArrange значением true , инициируют отложенный запрос на аннулирование визуальных элементов для этого элемента (вызов InvalidateArrange). Так как эта реализация на уровне платформы WPF уже существует, обычно не требуется искать свойства зависимостей с AffectsArrange , если вы не заменяете или не изменяете поведение макета на уровне платформы WPF.

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

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

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

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

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

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