整个情况看起来像是:
StackPanel中的视图上有几个按钮。默认情况下应选择第一个。当选择按钮时,它的背景必须是绿色,另一个(未选择)按钮的背景必须是蓝色。
是否可以在ViewModel中实现某些逻辑来实现这样的行为?
更新1.我说的是Buttons而不是ToggleButtons
答案 0 :(得分:0)
答案 1 :(得分:0)
在您调用时无法选择或“选择”Button
。它没有IsSelected
属性。如果您想要这种行为,那么您需要使用ToggleButton
,或者甚至RadioButton
Style
Button
看起来像常规Style
:
将此Resources
添加到您的<Style TargetType="{x:Type RadioButton}">
<Setter Property="Foreground" Value="White" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Border CornerRadius="3.5" Background="White" BorderBrush="Black" BorderThickness="1" Padding="1">
<Border Name="Border" CornerRadius="3" Background="Blue" Padding="10,0,10,2">
<ContentPresenter />
</Border>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Border" Property="Background" Value="Red" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
部分:
RadioButton
然后,您可以使用Button
的{{1}}来满足您的要求:
<StackPanel Orientation="Horizontal">
<RadioButton Content="One" />
<RadioButton Content="Two" />
<RadioButton Content="Three" />
<RadioButton Content="Four" />
</StackPanel>