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