我正在使用轻量级样式来设计按钮的样式:
<Button ...>
<Button.Resources>
<SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="#48B2E9"/>
<SolidColorBrush x:Key="ButtonForegroundPointerOver" Color="Black"/>
...
</Button.Resources>
</Button>
我想将此样式应用于多个(但不是所有(按钮。
目前,我需要将这些<Button.Resources>
复制并粘贴到我想要的每个按钮上。
有没有办法避免这种重复?
我尝试创建一个样式,但不知道如何在样式中设置资源。
我想我可以创建一个控制模板,但这似乎很难。
您可以考虑创建一个始终应用资源的自定义Button
控件,而不是尝试对内置Button
进行样式化
在Visual Studio中,将UserControl
添加到项目(项目->添加新项->用户控件(中,并将XAML文件的内容替换为以下内容:
<!-- MyCustomButton.xaml -->
<Button
x:Class="WinUIApp.MyCustomButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Button.Resources>
<SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="#48B2E9"/>
<SolidColorBrush x:Key="ButtonForegroundPointerOver" Color="Black"/>
</Button.Resources>
</Button>
并相应地更改代码隐藏类的基类:
// MyCustomButton.xaml.cs
public sealed partial class MyCustomButton : Button
{
public MyCustomButton()
{
this.InitializeComponent();
}
}
然后,您可以像往常一样在任何其他视图中创建该Button
的实例,例如:
<local:MyCustomButton Content="Click me!" />
<local:MyCustomButton Content="Another button..." />
对不起滥用
不能在样式定义上设置资源。所以您必须将附加的DependencyProperty添加到按钮,然后将其设置在样式定义上
看到这个