2016-06-19 2 views
0

Согласно MSDN, наследование значения свойства позволяет дочерним элементам в дереве элементов получать значение определенного свойства из родительских элементов, наследуя это значение, поскольку оно было установлено где угодно в ближайшем родительском элементе.Как свойство наследования свойств работает в WPF?

Пожалуйста, найдите ниже примере образца

<Grid Width="300" > 
       <Border BorderThickness="1"> 
       <StackPanel Width="200" Height="200" Background="AliceBlue"> 
        <TextBlock /> 
       </StackPanel> 
       </Border> 
      </Grid> 

У меня есть 2 вопроса о примере, приведенном выше,

  1. Фон TextBlock не установлен на уровне TextBlock, но он получает значение от родителя StackPanel. Точно так же он занимает ширину 200 из stackpanel, но высота не установлена ​​в 200, почему?

  2. Поскольку текстовое свойство TextBlock не установлено, будет ли оно искать его у его родителей, например, Stackpanel, Border, Grid? Я не могу найти механизм для установки значения свойства Text на уровне Panel.

ответ

0

Признак значения свойства зависимостей - well documented.

1) Размер элементов управления не наследуется, это measured в соответствии с размером родителя (доступный размер) и желаемым размером для отображения содержимого.

2) Для этого вы должны использовать опцию FrameworkPropertyMetadata.Inherits в прилагаемой декларации свойств. Кроме того, только придает DP может унаследовали значение:

Хотя значение свойства наследования может показаться, чтобы работать на свойства nonattached зависимости, поведение наследования для nonattached имущества посредством определенных объектно-объектных подразделений в дереве выполнения не определен. Всегда используйте RegisterAttached для регистрации свойств, где вы указываете Inherits в метаданных.

+0

Каковы свойства, которые унаследованы. Это только размер, который не унаследован? – sdhok

+0

Если вы ищете исчерпывающий список прикрепленных свойств, я не смогу предоставить это – nkoniishvt

+0

Спасибо за ответ. Даже свойство фона не получает унаследованных, Все свойства, которые отображаются после ввода TextBlock. [PropertyName] в statckpanel наследуется. – sdhok

Смежные вопросы