侧面板上有一组按钮。我想更改已单击按钮的背景。我试图使用style.trigger
做到这一点,我唯一能想到的属性是IsPressed
,但这并没有多大帮助,因为它改变了背景一秒钟(直到按下按钮为止[咄])。
这是我尝试过的代码:
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="SlateGray" />
<Setter Property="Foreground" Value="White"></Setter>
</Trigger>
</Style.Triggers>
我能想到的另一种方法是使用datatrigger
为每个按钮创建单独的样式,因为我有一个随按钮选择而变化的属性,但这似乎有点矫枉过正。不知道如何突出显示已点击的按钮?
答案 0 :(得分:9)
当您的条件满足时,此类触发器会运行,然后效果消失。为了设置好而不是一会儿看看这个
<Button Content="Content" Background="Red">
<Button.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="CadetBlue"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
由于IsPressed不是RoutedEvent,您可以使用此
<Button Content="Content" Background="Red">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="CadetBlue"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>