C# 切换按钮的堆栈面板,其中最多选中一个

C# 切换按钮的堆栈面板,其中最多选中一个,c#,wpf,xaml,C#,Wpf,Xaml,一次检查多个按钮 检查3D和文本 我认为您希望这里的按钮是相互排斥的,我建议您编辑您的问题以明确这一点 您可以将单选按钮样式设置为切换按钮,因为单选按钮内置了这种行为 这里有一个概念证明来向你展示这个想法 <Window.Resources> <Style BasedOn="{StaticResource {x:Type ToggleButton}}" TargetType="RadioButton"> <Style.Trigge

一次检查多个按钮

检查3D和文本


我认为您希望这里的按钮是相互排斥的,我建议您编辑您的问题以明确这一点

您可以将单选按钮样式设置为切换按钮,因为单选按钮内置了这种行为

这里有一个概念证明来向你展示这个想法

<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>

A.
B
C
当然,样式与您拥有的完全不同。 单击一个按钮,它将被选中,您将看到字母显示为红色。单击另一个选项,该选项将被选中,而上一个选项将被取消选中

这至少应该让你开始


如果它不能完全满足您的需要,并且您需要更好的逻辑控制,那么您可以将itemscontrol模板化到按钮中,然后使用一些linq来迭代绑定集合并应用您的逻辑。不管是什么。

没错。观察得好,不要喂鸽子。和