属性值继承如何在WPF中工作?
问题描述:
根据MSDN,属性值继承使元素树中的子元素能够从父元素获取特定属性的值,并继承该值,因为它在最近的父元素中的任何位置设置。属性值继承如何在WPF中工作?
请找到样品例如低于
<Grid Width="300" >
<Border BorderThickness="1">
<StackPanel Width="200" Height="200" Background="AliceBlue">
<TextBlock />
</StackPanel>
</Border>
</Grid>
我有关于上述的实施例2点的问题,
TextBlock的背景没有被设置在正文块的水平,但它从母体获得值StackPanel中。同样,它从堆叠面板的宽度为200,但高度没有设置为200,为什么?
由于未设置TextBlock的Text属性,它是否会在其父级像Stackpanel,Border,Grid中查找它?我找不到在Panel级别设置Text属性值的机制。
答
依赖项属性值优先级为well documented。
1)根据父级的大小(可用大小)和期望大小来显示内容,控件的大小不会被继承,它是measured。
2)为此,您必须在附加属性声明中使用FrameworkPropertyMetadata.Inherits选项。此外,只有连接DP可以继承值:
尽管属性值继承可能出现的nonattached依赖性质的工作,在运行时树通过一定的对象,对象组A nonattached财产的继承行为是不确定的。始终使用RegisterAttached来注册在元数据中指定Inherits的属性。
什么是继承的属性。它只是不被继承的大小吗? – sdhok
如果您正在查看详尽的附加属性列表,我将无法提供 – nkoniishvt
感谢您的答复。即使背景属性也没有被继承, 在键入TextBlock后的所有属性都被继承。 – sdhok