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