以编程方式设置按钮平面样式

时间:2013-09-08 10:12:21

标签: c# wpf styles

我希望在某些条件发生时以编程方式为按钮指定一个平面样式。

This question显示了我如何以编程方式为控件设置样式,已经在XAML中定义了它。

This question表示已存在平面按钮样式,因此无需在XAML中创建一个。

ToolBar.ButtonStyleKey返回ResourceKey,并且我的窗口中没有定义相应的样式(它在ToolBar中)。如何在代码中使用它来以编程方式设置样式?

2 个答案:

答案 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),但这也适用。