设置自定义按钮的样式

时间:2014-03-23 15:23:22

标签: c# wpf custom-controls

我创建了一个自定义按钮,并希望在按钮上添加一个样式。我想把这个样式放在类级别的按钮上,这样我就不必在每个按钮实例上设置Style属性。有没有办法做到这一点?我有一个应用程序资源文件,其中包含按钮的样式,只需要将两者联系起来。

按钮类

public class CfcButton : Button
{
    public CfcButton()
    {
       //Set the Style here
    }
}

然后当我必须在xaml页面上放一个按钮时,它就像这样:

<controls:CfcButton Name="btnSearch" Margin="15,0,0,0"
                    Content="Search" Width="75" 
                    Command="{Binding SearchClick}" />

而不是在创建按钮时设置按钮上的样式:

<controls:CfcButton Name="btnSearch" Margin="15,0,0,0"
                    Content="Search" Width="75"
                    Style="{DynamicResource CfcButtonStyle}"
                    Command="{Binding SearchClick}" />

2 个答案:

答案 0 :(得分:1)

在应用资源下放置默认样式(不设置任何x:键),它将自动应用于应用中的所有自定义按钮。

<Application>
  <Application.Resources>
     <Style xmlns:local="clr-namespace:YourNamespace"
            TargetType="local:CfcButton">
        ......
     </Style>
  </Application.Resources>
</Application>

将YourNamespace替换为声明CfcButton类的实际命名空间名称。

答案 1 :(得分:0)

您可以在构造函数中设置样式,如下所示:

this.Style = (Style)Application.Current.Resources["CfcButtonStyle"];

如果您的样式资源没有密钥,但只有目标类型,那么您可以使用typeof(CfcButton)作为资源密钥 - 但现在我可以看到,它有,所以我更新了代码。 ..