如何从单选按钮中删除禁用效果?
本文关键字:删除 单选按钮 | 更新日期: 2023-09-27 17:50:22
我想有一个单选按钮,其IsEnable属性不会使其视觉外观发生任何变化。然而,当单选按钮的IsEnable属性为False时,它不应该允许用户做任何事情。
我只是想要有一个单选按钮,它看起来一样,不管它的IsEnable属性。除了视觉外观,其他一切都应该正常工作。
你可能会觉得这是一个最奇怪的要求。但我想实现这个目标。我使用单选按钮作为列表框中的列表框项。一切都很好,但问题发生时,用户按Ctrl鼠标左键选中单选按钮。这就是一切失败的地方。
请帮帮我。
您必须提取一个RadioButton的ControlTemplate,然后删除Disable触发器的样式。下面是一个RadioButton标准模板的例子。只需注释掉触发器IsEnable = False
<Style x:Key="RadioButtonStyle1" TargetType="{x:Type RadioButton}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background" Value="#F4F4F4"/>
<Setter Property="BorderBrush" Value="{StaticResource CheckBoxStroke}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<BulletDecorator Background="Transparent">
<BulletDecorator.Bullet>
<Themes:BulletChrome BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" IsChecked="{TemplateBinding IsChecked}" IsRound="true" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}"/>
</BulletDecorator.Bullet>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</BulletDecorator>
<ControlTemplate.Triggers>
<Trigger Property="HasContent" Value="true">
<Setter Property="FocusVisualStyle" Value="{StaticResource CheckRadioFocusVisual}"/>
<Setter Property="Padding" Value="4,0,0,0"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Ashwin,
it Very simple
请按照步骤操作。
-
右键点击单选按钮,编辑模板和编辑副本
-
然后转到已创建的样式并注释掉storyboard中Disabled Visual state的代码,如图https://i.stack.imgur.com/3TNoR.png所示
-
那么两种状态看起来必须相同。看看结果"https://i.stack.imgur.com/fCL47.png"
希望它解决了你的目的。谢谢你,