我正在使用C#和WPF,我基本上想要一些切换按钮,并且只能同时选择其中一个。
我发现了another question,但是那里显示的解决方案不起作用,我不知道为什么。
如果我尝试按照上述问题中的说明进行操作,则ItemTemplate
的{{1}}不会应用。我只是没有将切换按钮放入列表框,而是显示为“普通列表框”。
我的切换按钮样式如下所示,包含在我的一个资源文件中:
ListBox
我想直接在XAML代码中添加项目,所以我的代码看起来像
<Style x:Key="ToggleButtonListBox" TargetType="{x:Type ListBox}">
<Setter Property="ListBox.ItemTemplate">
<Setter.Value>
<DataTemplate>
<ToggleButton Content="{Binding}"
IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" />
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ListBox.ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="BorderThickness" Value="0" />
</Style>
如何创建这样一组按钮?
答案 0 :(得分:37)
如果你想要看起来像切换按钮的单选按钮,那么单选按钮的样式就不会像切换按钮一样解决你的问题吗?
<StackPanel>
<RadioButton GroupName="groupFoo" Style="{StaticResource {x:Type ToggleButton}}">Button 1</RadioButton>
<RadioButton GroupName="groupFoo" Style="{StaticResource {x:Type ToggleButton}}">Button 2</RadioButton>
</StackPanel>