任何显示星星图像而不是RadioButton的方式
本文关键字:RadioButton 方式 显示 星星 图像 任何 | 更新日期: 2023-09-27 18:28:39
在WPF中?
很抱歉,这是一个基本问题,还在这里学习基础知识!
复制/粘贴/运行这个愚蠢的示例:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="{x:Type RadioButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<StackPanel Orientation="Horizontal">
<Polygon x:Name="star" Fill="Transparent" Stroke="Gray" StrokeThickness="2" Points="18,4 22,14 35,14 24,20 28,30 18,24 8,30 12,20 2,14 14,14"/>
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" Margin="4,0"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="RadioButton.IsChecked" Value="True">
<Setter TargetName="star" Property="Polygon.Fill" Value="Gold"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel>
<RadioButton Content="one" GroupName="sillySample" IsChecked="True" />
<RadioButton Content="two" GroupName="sillySample"/>
<RadioButton Content="tree" GroupName="sillySample"/>
</StackPanel>
简而言之,在WPF中,你可以覆盖一些控制模板,用你想要的任何东西交换内部控制结构,但保持它的行为,就像我在这里所做的那样(只是为了证明这一点)我使用RadioButton.IsChecked属性将Fill设置为Gold,因为它(IsChecked)不属于文本块或多边形,然而,我仍然可以使用它,因为我正在覆盖RadioButton的模板
不管怎样,祝好运
denis
是的,你可以。问题是您必须为单选按钮创建一个xaml样式
您可以替换控制模板。
http://msdn.microsoft.com/en-us/library/ms745683.aspx#styling_controltemplates