【发布时间】:2019-02-12 14:09:56
【问题描述】:
我想要一组单选按钮,将未选中和选中模式的圆圈更改为我设计的圆圈图标。
在 WPF 中可以做到这一点吗? 提前致谢
【问题讨论】:
标签: wpf radio-button
我想要一组单选按钮,将未选中和选中模式的圆圈更改为我设计的圆圈图标。
在 WPF 中可以做到这一点吗? 提前致谢
【问题讨论】:
标签: wpf radio-button
创建一个样式并覆盖 RadioButtons 的默认模板。像这样的:
<Window.Resources>
<Style TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<BulletDecorator Background="Transparent">
<BulletDecorator.Bullet>
<Grid Width="13" Height="13">
<Ellipse x:Name="Border" StrokeThickness="2">
<Ellipse.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Green" Offset="0" />
<GradientStop Color="Pink" Offset="1" />
</LinearGradientBrush>
</Ellipse.Stroke>
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0"
EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Orange" />
<GradientStop Color="Red"
Offset="1.0" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Ellipse x:Name="CheckMark"
Margin="4"
Visibility="Collapsed">
<Ellipse.Fill>
<SolidColorBrush Color="Purple" />
</Ellipse.Fill>
</Ellipse>
</Grid>
</BulletDecorator.Bullet>
<ContentPresenter Margin="4,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RecognizesAccessKey="True" />
</BulletDecorator>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
【讨论】:
是的,当然,这是可能的。您可以覆盖默认的 ControlTemplate 并为您自己的单选按钮创建样式。 Here是一个例子,你也可以使用Style Snooper查看WPF内置的单选按钮样式(一大段XAML代码:)
【讨论】: