我创建了一个自定义按钮,并希望在按钮上添加一个样式。我想把这个样式放在类级别的按钮上,这样我就不必在每个按钮实例上设置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}" />
答案 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)作为资源密钥 - 但现在我可以看到,它有,所以我更新了代码。 ..