【发布时间】:2012-07-28 01:10:36
【问题描述】:
我想在 XAML 中使用事件触发器来实现,当触发鼠标输入时,按钮的样式(按钮和文本变大)会发生变化。然后当鼠标离开事件被触发时,它会恢复到原来的样式。
我已经解决了这个问题,但我的问题是当单击按钮时,必须保留鼠标输入的样式,除非单击其他按钮。
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleX"
To="2" Duration="0:0:0.25"/>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY"
To="2" Duration="0:0:0.25"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Button.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleX"
To="1" Duration="0:0:0.25"/>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY"
To="1" Duration="0:0:0.25"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
感谢任何帮助。谢谢!
【问题讨论】:
-
我不确定我是否理解这个问题。您是否希望按钮在单击时在视觉上不执行任何操作,或者...?
-
当按钮被点击时,我希望它保持大。所以在鼠标输入:按钮变大。鼠标离开时:按钮再次变小。但是在鼠标点击时:即使触发了鼠标离开,按钮也应该保持大。
-
听起来您想要的是 ToggleButton 而不是常规按钮,并将您的样式更改应用于 Checked 事件而不是 MouseEnter/MouseLeave 事件。
-
@Chris:我会尝试切换按钮。但是,如果我必须添加另一个按钮并且只应该切换一个按钮怎么办?因此,当按钮 1 被切换(按比例缩放)然后用户转到按钮 2 然后单击(按比例缩放)时,按钮 1 应该按比例缩小。谢谢。
-
@lionheart 然后你想让它们成为单选按钮,这实际上只是具有更多逻辑的切换按钮。
标签: wpf xaml animation triggers storyboard