FrameworkPropertyMetadata.AffectsParentArrange Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает значение, указывающее, может ли свойство зависимостей влиять на передачу размещения разметки родительского элемента во время операций обработчика разметки.
public:
property bool AffectsParentArrange { bool get(); void set(bool value); };
public bool AffectsParentArrange { get; set; }
member this.AffectsParentArrange : bool with get, set
Public Property AffectsParentArrange As Boolean
Значение свойства
Значение true
, если свойство зависимостей, в котором существуют метаданные, влияет на передачу размещения непосредственно в родительском элементе; в противном случае — значение false
. Значение по умолчанию — false
.
Исключения
Метаданные уже применены к операции свойства зависимостей. Поэтому метаданные запечатаны, а их свойства нельзя задать.
Комментарии
FrameworkElement и FrameworkContentElement включите реализацию OnPropertyChanged , которая отслеживает эффективные изменения значений для всех свойств зависимостей, существующих в элементе. В рамках этой логики свойства зависимостей, которые изменяют действующее значение и имеют метаданные, AffectsParentArrange для которых задано значение true
, инициируют отложенный запрос, чтобы сделать визуальные элементы недействительными для родительского элемента.
Как правило, не требуется сообщать об изменениях FrameworkElement свойства родительскому элементу, AffectsParentArrange так как сам элемент уже имеет собственный вид AffectsArrange true
. Это обычно достаточно, так как изменения в дочернем элементе обычно инициируют родительский упорядочение при необходимости. AffectsParentArrange иногда используется для производного FrameworkContentElement класса. В этом случае дочерний элемент задает свойство, но производный FrameworkContentElement класс не управляет собственной отрисовкой. Отрисовка обрабатывается родительским элементом FrameworkElement , который служит узлом содержимого. Например, изменение значения присоединенного FixedPage.Left свойства дочерним элементом делает недействительным расположение родительского элемента, так как положение дочернего элемента в родительском элементе должно быть изменено. Таким образом, присоединенное FixedPage.Left свойство содержит метаданные, где AffectsParentArrange есть true
. Другой пример : Paddingпри изменении этого свойства родительский элемент может изменить положение дочернего элемента в зависимости от доступного пространства.
Так как эта реализация на уровне платформы WPF уже существует, обычно не нужно искать свойства зависимостей AffectsParentArrange , если вы не существенно заменяете или не изменяете поведение макета на уровне платформы WPF.
Пользовательские OnPropertyChanged реализации могут иметь аналогичное поведение для изменений свойств зависимостей.AffectsParentArrange true
Свойства любого производного PropertyMetadata класса обычно определяются в объектной модели как чтение и запись. Это позволяет настроить их после инициализации экземпляра. Однако после использования метаданных в рамках вызова RegisterAddOwnerили OverrideMetadataсистемы свойств система свойств запечатывает этот экземпляр метаданных и свойства, которые передают особенности метаданных, теперь считаются неизменяемыми. При попытке задать это свойство после IsSealed того, как он находится true
в этом экземпляре метаданных, возникнет исключение.
Использование текста XAML
Члены этого класса обычно не используются в XAML.