【问题标题】:Make Slider bounce WPF Animation使滑块反弹 WPF 动画
【发布时间】:2017-06-13 22:46:50
【问题描述】:

我想提示一下 - Slider 是可移动的。为此,我想让它在获得焦点时反弹。

到目前为止,我有一个动画至少可以让它靠近Value,但我希望它在它之后向后滑动,甚至让它有点反弹。

这是我的自定义 SliderTrigger 部分。

<ControlTemplate.Triggers>
    <EventTrigger RoutedEvent="UIElement.GotFocus">
         <BeginStoryboard>
             <Storyboard>
                 <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(RangeBase.Value)" >
                     <EasingDoubleKeyFrame KeyTime="0:0:1" Value="90"/>
                 </DoubleAnimationUsingKeyFrames>
             </Storyboard>
         </BeginStoryboard>
     </EventTrigger>
 </ControlTemplate.Triggers>

还有更好的活动吗?

【问题讨论】:

标签: c# wpf xaml


【解决方案1】:

您可以尝试将AutoReverseRepeatBehaviour 一起使用

<Storyboard>
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(RangeBase.Value)" >
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="90"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:3" Value="90"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

更新

<EventTrigger RoutedEvent="UiElement.Click">
    <BeginStoryboard>
        <Storyboard>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Width" >
                <EasingDoubleKeyFrame KeyTime="0:0:0" Value="90"/>
            </DoubleAnimationUsingKeyFrames>
         </Storyboard>
    </BeginStoryboard>
</EventTrigger>

【讨论】:

  • 我不希望它只重复 3 秒,它找不到 RepeatBehaviourAutoReverse
  • 你可以设置RepeatBehaviour="3"
  • 或者你可以使用RepeatBehaviour="0:0:3"
  • 确实有两个选项,添加单击或鼠标按下事件Storyboard sb = (Storyboard)this.FindResource("name"); 然后使用sb.Stop(); 或查看更新
  • 使用BounceEase 缓动函数在没有任何重复行为的情况下使用单个关键帧动画触发 UIElement.GotFocus 事件上的故事板会更简单、更有效(顺便说一句,如果你这样做了3 次语法将是 ="3x" 而不是 ="3") 只是一个提示 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 2012-02-19
  • 2017-03-11
相关资源
最近更新 更多