是否存在阻止DependecyProperty继承的机制,或者某些值是由某些元素在本地设置的?
我有两个我不明白的例子:
<Button Background="AntiqueWhite" Height="40" Width="50" FontSize="10">
<Button>Test</Button>
</Button>
<TextBlock Text="Test" Background="AntiqueWhite" Height="40" Width="50" FontSize="10">
<TextBlock />
</TextBlock>
在Button元素中,子按钮不是继承背景/高度/宽度,而是继承fontsize,即使所有属性都是DependencyProperty。
在TextBlock元素中,情况是相同的,但是我们有另一个DependencyProperty (文本)。
我明白优先事项是如何运作的。本地值比继承值具有更大的优先级。但是,如果控件本身设置了什么,那么我在哪里可以获得信息呢?或者可能还有其他机制阻止某些DependencyProperties被继承?
发布于 2014-02-07 14:18:58
参见本文:http://msdn.microsoft.com/en-us/library/vstudio/ms751554%28v=vs.100%29.aspx
DependencyProperties
有PropertyMetadata
(相关类是FrameworkPropertyMetadata
)
描述的标志之一是Inherits
标志(http://msdn.microsoft.com/en-us/library/vstudio/system.windows.frameworkpropertymetadata.inherits%28v=vs.100%29.aspx)。
节选:
继承。默认情况下,依赖项属性不继承值。OverridesInheritanceBehavior允许继承路径也进入可视树,这对于某些控制组合场景是必要的。NoteNote 属性值上下文中的术语"inherits“意味着特定于依赖属性的内容;它意味着子元素可以从父元素继承实际的依赖属性值,这是因为WPF属性系统具有WPF框架级别的功能。它与托管代码类型和通过派生类型进行成员继承没有直接关系。有关详细信息,请参阅属性值继承。
https://stackoverflow.com/questions/21629917
复制相似问题