WPF实现左右移动(晃动)动画效果

简介: 原文:WPF实现左右移动(晃动)动画效果 实现控件或布局的左右移动(晃动)主要用到DoubleAnimation以及Storyboard 布局代码为: ...
原文: WPF实现左右移动(晃动)动画效果

实现控件或布局的左右移动(晃动)主要用到DoubleAnimation以及Storyboard
布局代码为:

<Canvas>
        <Grid Width="200" Height="100" Background="MediumAquamarine" Name="GroupboxArea" Canvas.Left="100" Canvas.Top="200"/>
        <Button Content="Button" Height="25" Width="78" Click="Button_Click"/>
    </Canvas>

后台代码为:

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            DoubleAnimation DAnimation = new DoubleAnimation();
            DAnimation.From = 100;//起点
            DAnimation.To = 280;//终点
            DAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//时间

            Storyboard.SetTarget(DAnimation, GroupboxArea);
            Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty));
            Storyboard story = new Storyboard();

            story.Completed += new EventHandler(story_Completed);//完成后要做的事
            //story.RepeatBehavior = RepeatBehavior.Forever;//无限次循环,需要的自己加上
            story.Children.Add(DAnimation);
            story.Begin();
        }
        void story_Completed(object sender, EventArgs e)
        {
            DoubleAnimation DAnimation = new DoubleAnimation();
            DAnimation.From = 280;//起点
            DAnimation.To = 100;//终点
            DAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//时间

            Storyboard.SetTarget(DAnimation, GroupboxArea);
            Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty));
            Storyboard story = new Storyboard();

            story.Completed += new EventHandler(storyCompleted);//完成后要做的事
            //story.RepeatBehavior = RepeatBehavior.Forever;//无限次循环,需要的自己加上
            story.Children.Add(DAnimation);
            story.Begin();
        }

        void storyCompleted(object sender, EventArgs e)
        {
            DoubleAnimation DAnimation = new DoubleAnimation();
            DAnimation.From = 100;//起点
            DAnimation.To = 200;//终点
            DAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//时间

            Storyboard.SetTarget(DAnimation, GroupboxArea);
            Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty));
            Storyboard story = new Storyboard();

            //story.Completed += new EventHandler(storyCompleted);//完成后要做的事
            //story.RepeatBehavior = RepeatBehavior.Forever;//无限次循环,需要的自己加上
            story.Children.Add(DAnimation);
            story.Begin();
        }
目录
相关文章
|
4月前
|
C#
WPF中动画教程(DoubleAnimation的基本使用)
WPF中动画教程(DoubleAnimation的基本使用)
74 0
|
3月前
|
算法 C# Windows
不可不知的WPF动画(Animation)
【9月更文挑战第19天】在 WPF(Windows Presentation Foundation)中,动画能为应用程序增添生动性和交互性。主要类型包括线性动画和关键帧动画,可针对依赖属性和自定义属性操作。触发方式有事件触发和自动触发,支持暂停、恢复及停止控制。合理使用这些功能并注意性能优化,可创建引人入胜的用户界面。
|
4月前
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
249 1
|
4月前
|
C# UED 开发者
WPF动画大揭秘:掌握动画技巧,让你的界面动起来,告别枯燥与乏味!
【8月更文挑战第31天】在WPF应用开发中,动画能显著提升用户体验,使其更加生动有趣。本文将介绍WPF动画的基础知识和实现方法,包括平移、缩放、旋转等常见类型,并通过示例代码展示如何使用`DoubleAnimation`创建平移动画。此外,还将介绍动画触发器的使用,帮助开发者更好地控制动画效果,提升应用的吸引力。
197 0
|
4月前
|
存储 C# 数据格式
WPF动画教程(PointAnimationUsingPath的使用)
WPF动画教程(PointAnimationUsingPath的使用)
52 0
|
7月前
|
C#
WPF —— 动画缩放变换
`ScaleTransform`用于二维x-y坐标系中对象的缩放,可沿X或Y轴调整。在故事板中,通过RenderTransform.ScaleX和ScaleY属性控制缩放。示例代码展示了如何设置按钮的RenderTransformOrigin、Background等属性,并通过LayoutTransform应用ScaleTransform。当鼠标进入按钮时,EventTrigger启动DoubleAnimation实现X和Y轴的缩放动画。最后,展示了如何将动画集成到自定义按钮样式中。
179 0
|
C#
WPF技术之动画系列-上下运动
本例子展现动画小球上下循环运动
224 0
|
IDE C# 开发工具
WPF钟表效果实现
中WPF中的RotateTransform实现UI元素的旋转,并模拟钟表的秒针、分针和时针。
1197 0
WPF钟表效果实现
|
IDE 编译器 C#
WPF实现强大的动态公式计算
数据库可以定义表不同列之间的计算公式,进行自动公式计算,但如何实现行上的动态公式计算呢?行由于可以动态扩展,在某些应用场景下将能很好的解决实际问题。本文就探讨一下如何在WPF中实现一种基于行字段的动态公式计算。
1072 0
WPF实现强大的动态公式计算
|
网络协议 C# 移动开发
C# WPF上位机实现和下位机TCP通讯
C# WPF上位机实现和下位机TCP通讯下位机使用北京大华程控电源DH1766-1,上位机使用WPF。实现了电压电流实时采集,曲线显示。上午在公司调试成功,手头没有程控电源,使用TCP服务端模拟。昨天写的TCP服务端正好排上用场。
2405 0