c# - 使用摇动效果左右动画 WPF 窗口?

标签 c# wpf animation wpf-controls

谁能告诉我如何从当前位置为窗口设置动画。我正在寻找一种摇动效果,它只是左右摇动窗口,比如 5 到 6 次。

我知道我需要使用 Animation.By。这是我已经开始但还没有走远的事情。

但是这不起作用。

<Storyboard x:Key="sbShake1" FillBehavior="Stop">
    <DoubleAnimation Storyboard.TargetName="W1" Storyboard.TargetProperty ="(Window.Left)"
                     By="10" Duration="0:0:1">
    </DoubleAnimation >
</Storyboard >

我已经设法获得了正确的抖动效果,但我无法从窗口当前位置做到这一点。

<Storyboard x:Key="sbShake" RepeatBehavior ="00:00:01" SpeedRatio ="25" >
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty ="Left">
        <SplineDoubleKeyFrame KeyTime ="00:00:00.1000000" Value ="-10"/>
        <SplineDoubleKeyFrame KeyTime ="00:00:00.3000000" Value ="0"/>
        <SplineDoubleKeyFrame KeyTime ="00:00:00.5000000" Value ="10"/>
        <SplineDoubleKeyFrame KeyTime ="00:00:00.7000000" Value ="0"/>
    </DoubleAnimationUsingKeyFrames >
</Storyboard >

我们将不胜感激。

最佳答案

将窗口的 Left 属性设置为 500 并添加以下代码:

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.MouseDown" >
        <EventTrigger.Actions>
            <BeginStoryboard>
                <Storyboard TargetProperty="Left">
                    <DoubleAnimation From="500" To="515" Duration="0:0:0.05"
                                     AutoReverse="True" RepeatBehavior="3x"
                                     FillBehavior="Stop"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger.Actions>
    </EventTrigger>
</Window.Triggers>

当你没有提到 From="x" 时,你应该手动设置 Window 的属性 Left 否则它设置为 Auto 和当您尝试摇动您的窗口时,Left 的值为 NaN,将抛出异常。

关于c# - 使用摇动效果左右动画 WPF 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17434877/

相关文章:

c# - 如何在 MVVM 中创建母版页?

javascript - jQuery 无法正确识别 CSS 动画结束事件何时触发

javascript - "Driving"使用 javascript/jquery 到位效果

c# - Application Insights - 如何将自定义指标添加到您的请求信息中?

c# - 将 ObservableCollection 项目绑定(bind)到 WrapPanel 中的 UserControl?

c# - 如何在 WPF textBlock 控件中滚动文本?

java - 更改 WPF 应用程序的外观?

android - 动画 fragment 导致其他 View 变为 "jump"

c# - 如何转义序列包括\u和\U?

c# - 寻找 mainviewmodel 上 MVVM 文本 block 绑定(bind)的指导