FrameworkPropertyMetadata.Inherits Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает значение, которое указывает, наследуется ли значение свойства зависимостей.
public:
property bool Inherits { bool get(); void set(bool value); };
public bool Inherits { get; set; }
member this.Inherits : bool with get, set
Public Property Inherits 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")
Комментарии
Наследование значений свойств — это функция системы свойств WPF на уровне платформы WPF, при которой определенные свойства зависимостей могут быть локально заданы в элементе в корне дерева элементов XAML или рядом с ним, а затем их значение наследуется всеми элементами в логическом дереве дочерних элементов, которые также обладают этим свойством. Наследование значений свойств не включено по умолчанию, и его включение имеет некоторые последствия для производительности. Подробнее см. в разделе Наследование значения свойства.
Примечание
Хотя наследование значения свойства может работать для неприсоединенных свойств зависимостей, поведение наследования для несоединенного свойства через определенные деления объектов и объектов в дереве среды выполнения не определено. Для регистрации свойств всегда используйте RegisterAttached, если в метаданных указываете Inherits.
Свойства производных PropertyMetadata классов обычно определяются в объектной модели как чтение и запись. Это позволяет настроить их после инициализации экземпляра. Однако после использования метаданных в рамках вызова Register, AddOwnerили OverrideMetadataсистема свойств запечатывает этот экземпляр метаданных и свойства, которые передают особенности метаданных, теперь считаются неизменяемыми. Попытка задать это свойство после IsSealed того, как находится true
в этом экземпляре метаданных, вызовет исключение.
Использование текста XAML
Члены этого класса обычно не используются в XAML.