使用静态资源和X:静态背后

问题描述:

代码我喜欢this flat button style使用静态资源和X:静态背后

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" BorderThickness="0" ... /> 

试图创建代码,后面的按钮:

var button = new Button 
{ 
    Style = (Style)Application.Current.FindResource("ToolBar.ButtonStyleKey"), // wrong 
    BorderThickness = new Thickness(0), 
    ... 
}; 

会抛出:

例外类型'System.Windows.ResourceReferenceKeyNotFoundException'发生在WindowsBase.dll中,但未在用户代码中处理

附加信息:找不到'ToolBar.ButtonStyleKey'资源。

根据您的工作代码,它应该是这样的:

Style = (Style)Application.Current.FindResource(ToolBar.ButtonStyleKey) 

换句话说,沟报价。 ButtonStyleKey不是名称,这是返回具有正确名称的字符串的静态属性。

+0

愚蠢的错误,谢谢。 – Sinatr