【发布时间】:2014-03-19 19:14:59
【问题描述】:
我用FrameworkPropertyMetadataOptions.Inherits声明了一个依赖属性:
public static class DesignerItemStyles {
public static readonly DependencyProperty HeaderBackgroundProperty =
DependencyProperty.RegisterAttached(
"HeaderBackground", typeof(Brush), typeof(DesignerItemStyles),
new FrameworkPropertyMetadata(
Brushes.DesignerViewElementHeaderBackground,
FrameworkPropertyMetadataOptions.Inherits));
/* Below are Get & Set as usual */
}
它有点工作,但不知何故不适用于整个视觉树。这是一个屏幕截图,显示了从 HeaderedDesignerItemChrome 继承值的 ContentPresenter:
现在,屏幕截图显示了ContentPresenter 的内容,它不继承该值。它也没有设置为其他值 - 它是默认值:
知道为什么吗?
【问题讨论】:
-
如果 ContentPresenter 有一个 DP 调用 HeaderBackground 这将起作用,否则它是一个附加属性。
-
它是一个附加属性。我在顶部发布了声明。
-
可能是您在 DesignerItemsPresenter 中做某事,也许是这个属性的一些元数据覆盖?
-
不,没有那种事
-
如果我错了,请纠正我,Brushes.DesignerViewElementHeaderBackground == #FFE9ECEE 这是默认值。这就是我们在 snoop 中看到的内容,然后在您设置#FFADE180 的某个地方可以显示它的设置位置吗?