2012-07-30 86 views
0

我想使用事件触发器在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> 

任何帮助表示赞赏。谢谢!

+0

我不确定我是否理解这个问题。你想让按钮在被点击时视觉上什么也不做,或者......? – VLTII 2012-07-30 13:47:22

+0

当按钮被点击时,我希望它保持大。所以在鼠标输入:按钮变大。鼠标离开时:按钮变小。但在鼠标点击时:即使触发鼠标离开,按钮也应该保持较大。 – lionheart 2012-07-30 13:52:46

+1

这听起来像你想要的是一个ToggleButton而不是一个普通的按钮,并将你的样式更改应用于Checked事件而不是MouseEnter/MouseLeave事件。 – 2012-07-30 14:27:49

回答

0

首先,感谢您的评论。他们非常棒,但我必须找到一种方法来使用标准按钮(不是收音机或切换键)来实现它。

我能弄明白这一个。所以,我想扩展控制按钮添加像标志一样的东西,以确定按钮是否已被点击,然后处理OnMouseLeave事件。