这有效:
<Style TargetType="{x:Type Button}">
<Style.BasedOn>
<x:StaticExtension Member="l:SharedResources.ButtonStyle" />
</Style.BasedOn>
</Style>
但是有了这个:
<Style TargetType="{x:Type Button}"
BasedOn="{x:Static l:SharedResources.ButtonStyle}" />
我在ArgumentNullException
获得了StaticExtension.MemberType.set(System.Type value)
,其中包含以下消息:
值不能为空。
参数名称:值
为什么?
l:SharedResources
是一个具有多个静态Style
属性的静态类
public class SharedResources : ResourceDictionary
{
// other stuff
public static Style ToolBarButtonStyle { get { /* stuff */ } }
// other styles
}
并且使用xaml中的样式除了上面的情况外没有任何障碍。
在异常之前,属性getter的断点永远不会被命中,但在工作的情况下,它确实会被命中。