如何避免用户更改单选按钮状态?

时间:2016-04-26 09:20:29

标签: wpf xaml

我有一个我设计的单选按钮

 <UserControl.Resources>
        <Style x:Key="RadioButton" TargetType="{x:Type RadioButton}">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="true">
                    <Setter Property = "Background" Value="Green"/>
                </Trigger>
                <Trigger Property="IsChecked" Value="false">
                    <Setter Property = "Background" Value="Red"/>
                </Trigger>
            </Style.Triggers>
        </Style>        
    </UserControl.Resources>

<RadioButton Style="{StaticResource  RadioButton}" Content="Server configured" Margin="10,10,10,10" IsChecked="{Binding serverStatus, Mode=OneWay}" Grid.Row="1" Grid.Column="1" />

它工作得很好但事情是它只用于显示用户不应该能够改变它。如果我将其设置为IsEnabled="False",我会丢失格式,无法看到单选按钮是否被选中。我也试过使用一个复选框它没有帮助它只是变灰了你我禁用它。

我想我可以使用图像来显示它,但造型单选按钮接缝更优雅。

问题:如何设置已禁用的单选按钮的样式?

1 个答案:

答案 0 :(得分:2)

您可以在Focusable="False"上设置IsHitTestVisible="False"RadioButton。然后用户将无法与之交互。

<RadioButton Focusable="False" IsHitTestVisible="False" Style="{StaticResource  RadioButton}" Content="Server configured" Margin="10,10,10,10" IsChecked="{Binding serverStatus, Mode=OneWay}" Grid.Row="1" Grid.Column="1" />