使用静态资源和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
不是名称,这是返回具有正确名称的字符串的静态属性。
愚蠢的错误,谢谢。 – Sinatr