【问题标题】:stack panel of toggle buttons where one at most is checked最多选中一个的切换按钮堆栈面板
【发布时间】:2018-03-31 09:38:52
【问题描述】:

一次检查了多个按钮。

已检查 3D 和文本

【问题讨论】:

  • 没错。良好的观察力。

标签: c# wpf xaml


【解决方案1】:

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

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

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

<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 来迭代绑定的集合并应用您的逻辑。不管那是什么。

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多