【问题标题】:Button control animations using event triggers使用事件触发器的按钮控制动画
【发布时间】: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


【解决方案1】:

首先,感谢你们所有的cmets。它们很棒且正确,但我必须找到一种使用标准按钮(不是单选按钮或切换按钮)来实现它的方法。

我能够弄清楚这一点。所以,我想扩展控制按钮来添加类似标志的东西来确定按钮是否被点击然后处理 OnMouseLeave 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2014-04-20
    • 1970-01-01
    相关资源
    最近更新 更多