单击后如何在按钮上保留应用的样式

时间:2013-11-06 11:26:57

标签: wpf

整个情况看起来像是:

StackPanel中的视图上有几个按钮。默认情况下应选择第一个。当选择按钮时,它的背景必须是绿色,另一个(未选择)按钮的背景必须是蓝色。

是否可以在ViewModel中实现某些逻辑来实现这样的行为?

更新1.我说的是Buttons而不是ToggleButtons

2 个答案:

答案 0 :(得分:0)

是的,您可以使用Style设置要在用户点击时更改的属性。

您可以找到更多信息herehere

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