【发布时间】:2011-01-15 19:13:49
【问题描述】:
我正在使用 XAML 样式使用我自己的图像创建自定义单选按钮。该样式使用触发器来根据焦点、按下等更改按钮的外观。以下是样式:
<Style x:Key="SmallButtonAsRadioButton" TargetType="RadioButton">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Grid x:Name="Container">
<Image x:Name="img" Source="/Resources/Elements/Buttons/10.png" Margin="6" />
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/11.png" />
<Setter TargetName="img" Property="Margin" Value="0" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsKeyboardFocused" Value="True" />
<Condition Property="IsChecked" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12.png" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsKeyboardFocused" Value="False" />
<Condition Property="IsChecked" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12a.png" />
<Setter TargetName="img" Property="Margin" Value="6" />
</MultiTrigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12.png" />
<Setter TargetName="img" Property="Margin" Value="0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我需要在此基础上创建一种使用不同图像的新样式。显然,我想重用这种风格,但我不确定如何覆盖这些图像设置器。比如:
<Style x:Key="SmallButtonAsRadioButtonBlue" BasedOn="{StaticResource SmallButtonAsRadioButton}" TargetType="RadioButton">
<Setter - (Override image...
<Setter - (Override image...
感谢任何见解。
【问题讨论】: