堆叠面板的切换按钮,其中最多检查一个

时间:2018-03-31 09:38:52

标签: c# wpf xaml

一次检查多个按钮。

检查3D和文本

enter image description here

1 个答案:

答案 0 :(得分:-1)

我认为你想要的是相互排斥的按钮,我建议你编辑你的问题以使其清楚。

您可以将radiobuttons设置为togglebuttons,因为radiobuttons内置了此行为。

这是一个概念证明,可以向您展示这个想法。

<Window.Resources>
    <Style BasedOn="{StaticResource {x:Type ToggleButton}}"
      TargetType="RadioButton">
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource Self}}" Value="True">
                <Setter Property="Foreground" Value="Red"/>
            </DataTrigger>        
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <StackPanel>
        <RadioButton>A</RadioButton>
        <RadioButton>B</RadioButton>
        <RadioButton>C</RadioButton>
    </StackPanel>
</Grid>

造型当然与您拥有的完全不同。 单击一个按钮,它会变为选中状态,您会看到该字母显示为红色。单击另一个,然后选中该选项并取消选中前一个。

这至少应该让你开始。

如果它没有完全按照你想要的那样做,你需要更好地控制逻辑,那么你可以将itemscontrol模板化到你的按钮中,然后使用一些linq来迭代绑定的集合并应用你的逻辑。不管是什么。