我有一个 C# WPF 应用程序,我需要在其中创建一堆不同颜色的图像/文本按钮。为此,我创建了一个从 Button 类派生的 ImageButton。
我希望我的按钮有圆角,所以我创建了以下控件模板:
<ControlTemplate x:Key="RoundedButtonTemplate" TargetType="{x:Type MyProject:ImageButton}">
<Grid>
<Border x:Name="border" Background="WHAT DO I PUT HERE?" CornerRadius="10"/>
</Grid>
</ControlTemplate>
现在我希望能够轻松地更改上方边框的颜色,只需更改 XAML 中的样式即可。我定义了以下样式。
绿色按钮样式:
<Style x:Key="GreenButtonStyle" TargetType="{x:Type MyProject:ImageButton}">
<Setter Property="Background" Value="{DynamicResource GreenButtonBrush}"/>
RoundedButtonTemplate}"/>
</Style>
蓝色按钮样式:
<Style x:Key="GreenButtonStyle" TargetType="{x:Type MyProject:ImageButton}">
<Setter Property="Background" Value="{DynamicResource BlueButtonBrush}"/>
RoundedButtonTemplate}"/>
</Style>
我的客户端代码如下所示:
<local:ImageButton HorizontalAlignment="Left" Margin="24,19.234,0,20" Width="97" Grid.Row="3" Style="{DynamicResource GreenButtonStyle}" Template="{DynamicResource RoundedButtonTemplate}"/>
我的问题是如何让模板知道要使用哪种样式?我尝试将以下属性添加到我的样式中,但没有太大成功:
<Setter Property="Template" Value="{DynamicResource RoundedButtonTemplate}"/>