【问题标题】:Silverlight - implicit style inheritance problemSilverlight - 隐式样式继承问题
【发布时间】:2011-07-07 18:48:43
【问题描述】:

如果我有一个ContextMenu 的子类(例如)称为MyContextMenu,并且我在MergedDictionaries 中使用TargetType=ContextMenu 定义了一个样式,为什么这种样式不适用于MyContextMenu 的实例?

它适用于基类的所有实例,但不适用于任何子类。

我可以创建其他样式并使用BasedOn,但这并不干净。似乎没有它应该可以工作。

我已确保我的子类调用基构造函数,并已验证 DefaultStyleKey 是我的基类的类型。

【问题讨论】:

    标签: silverlight styles implicit-style


    【解决方案1】:

    根据this article

    请注意,TargetType 必须与要应用的类型样式完全匹配。例如,如果您指定 Style 的 Key,那么目标元素可以是 TargetType 的子类。但是类型化样式通常应用于类型完全匹配的元素!这样做是为了防止意外。例如,您可能已经为应用程序中的所有 ToggleButtons 创建了一个 Style,并且您不希望将此样式应用于任何 CheckBox(派生自 ToggleButton)。

    同样可以在the official documentation中阅读(中途)

    【讨论】:

    • 当然答案就在我唯一不看的地方。谢谢,那我想没什么可做的了。至少我们有BasedOn
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多