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 реализации могут выбрать аналогичное поведение для изменений AffectsArrangetrueсвойств зависимостей.
Свойства производных PropertyMetadata классов обычно определяются в объектной модели как чтение и запись. Это позволяет настроить их после инициализации экземпляра. Однако после использования метаданных в рамках вызова Registerили AddOwnerOverrideMetadataсистемы свойств система свойств запечатывает этот экземпляр метаданных и свойства, которые передают особенности метаданных, теперь считаются неизменяемыми. Попытка задать это свойство после того, IsSealed как он находится true в этом экземпляре метаданных, вызовет исключение.
Использование текста XAML
Члены этого класса обычно не используются в XAML.