如何在MAUI中无需ControlTemplate修改RadioButton椭圆颜色
我想通过RadioButton的VisualState直接设置它的椭圆(实际按钮部分)的Stroke(边框)和Fill(填充)颜色,不需要定义ControlTemplate。实在不敢相信RadioButton控件设计时居然不提供椭圆属性的直接访问权限,但目前我找不到绕开ControlTemplate的方法。
以下是我MAUI项目里RadioButton的默认样式定义:
<Style TargetType="RadioButton"> <Setter Property="BackgroundColor" Value="Transparent"/> <Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" /> <Setter Property="FontFamily" Value="OpenSansRegular"/> <Setter Property="FontSize" Value="14"/> <Setter Property="MinimumHeightRequest" Value="44"/> <Setter Property="MinimumWidthRequest" Value="44"/> <Setter Property="VisualStateManager.VisualStateGroups"> <VisualStateGroupList> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="Disabled"> <VisualState.Setters> <Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateGroupList> </Setter> </Style>
能不能直接添加类似下面的代码?
<VisualState x:Name="Checked"> <VisualState.Setters> <Setter Property="EllipseFill" Value="Blue" /> <Setter Property="EllipseStroke" Value="Blue" /> </VisualState.Setters> </VisualState>
把上面的EllipseFill和EllipseStroke替换成指向椭圆Fill和Stroke属性的正确语句就行?另外,有没有备选方案——通过后台代码访问RadioButton的椭圆及其属性?
我当然可以按需创建ControlTemplate,但总觉得应该有更简单的解决办法。
内容的提问来源于stack exchange,提问作者cfischy
相关产品推荐
相关产品推荐

