我希望在某些条件发生时以编程方式为按钮指定一个平面样式。
This question显示了我如何以编程方式为控件设置样式,已经在XAML中定义了它。
This question表示已存在平面按钮样式,因此无需在XAML中创建一个。
ToolBar.ButtonStyleKey
返回ResourceKey
,并且我的窗口中没有定义相应的样式(它在ToolBar中)。如何在代码中使用它来以编程方式设置样式?
答案 0 :(得分:14)
作为替代方案,您可以尝试:
XAML
<Button Name="FlatButton" Width="100" Height="30" Content="Test" />
Code behind
private void Button_Click(object sender, RoutedEventArgs e)
{
FlatButton.Style = (Style)FindResource(ToolBar.ButtonStyleKey);
}
答案 1 :(得分:8)
这是一种有效的解决方法。将基于ToolBar.ButtonStyleKey
的样式添加到Window.Resources
,如下所示:
<Window.Resources>
<Style x:Key="MyStyle" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="Button" />
</Window.Resources>
然后,在代码中,按照此问题中的第一个链接引用它:
button.Style = this.Resources["MyStyle"] as Style;
我更愿意为此设置一个仅限代码的解决方案(没有XAML),但这也适用。