设置自定义按钮的样式

本文关键字:样式 按钮 自定义 设置 | 更新日期: 2023-09-27 17:51:22

我创建了一个自定义按钮,并想在按钮上添加样式。我想把样式放在类级别的按钮上,这样我就不必在每个按钮实例上设置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}" />

设置自定义按钮的样式

默认样式(没有x:Key设置)放在App resources下,它将自动应用于应用程序中的所有自定义按钮。

<Application>
  <Application.Resources>
     <Style xmlns:local="clr-namespace:YourNamespace"
            TargetType="local:CfcButton">
        ......
     </Style>
  </Application.Resources>
</Application>
将YourNamespace替换为CfcButton类声明的实际命名空间名称。

您可以在构造函数中这样设置样式:

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

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