原文: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();
}

WPF实现左右移动(晃动)动画效果的更多相关文章

  1. WPF编游戏系列 之七 动画效果(2)

    原文:WPF编游戏系列 之七 动画效果(2)        上一篇已经对关闭窗口图标进行了动画效果处理,本篇将对窗口界面的显示和关闭效果进行处理.由于所有的动画效果都是针对窗口界面的Canvas,所以 ...

  2. WPF编游戏系列 之六 动画效果(1)

    原文:WPF编游戏系列 之六 动画效果(1)        本篇主要针对界面进行动画效果处理.首先在打开或关闭界面时,使其产生动态效果而不是生硬的显示或消失(如下图).其次在鼠标放到关闭窗口图标上时, ...

  3. WPF实现3D翻转的动画效果

    1.前端代码实现 1.1 原理见代码注析 <Grid MouseDown="Grid_MouseDown"> <Viewport3D> <Viewpo ...

  4. WPF 分享一种背景动画效果

    今天看微软的一个Samples,发现一个蛮好玩的背景样式,如下图所示: 风格比较卡哇伊. <Window x:Class="WPFSamplesTest.MainWindow" ...

  5. 动画(Animation) 之 (闪烁、左右摇摆、上下晃动等效果)

    左右晃动的效果: (这边显示没那么流畅) 一.续播  (不知道取什么名字好,就是先播放动画A, 接着播放动画B) 有两种方式. 第一种,分别动画两个动画,A和B, 然后先播放动画A,设置A 的 Ani ...

  6. wpf image控件循环显示图片 以达到动画效果 问题及解决方案

    1>最初方案: 用wpf的image控件循环显示图片,达到动画效果,其实就是在后台代码动态改变Image.Source的值,关键代码: ; i < ; i++)//六百张图片 { Bitm ...

  7. 【WPF】两则动画效果

    原文:[WPF]两则动画效果 引言 利用WPF的动画可以轻而易举的实现各种各样的特效,如擦除,滑动进入等,先看两个效果图 第一个效果 这个动画其实利用了OpacityMask和LinearGradie ...

  8. WPF 有趣的动画效果

    WPF 有趣的动画效果         这一次我要呈上一个简单的文章,关于给你的WPF apps加入美丽的光线动画,可是我对动画这东西可能有点入迷了.         实际上.我对动画如此的入迷,以至 ...

  9. WPF 画线动画效果实现

    原文:WPF 画线动画效果实现 弄了将近三天才搞定的,真是艰辛的实现. 看了很多博客,都太高深了,而且想要实现的功能都太强大了,结果基础部分一直实现不了,郁闷啊~ 千辛万苦终于找到了一个Demo,打开 ...

随机推荐

  1. keil出现蓝色小箭头

  2. ORACEL上传BLOB,深度遍历文件夹

    // uploadingDlg.cpp : 实现文件// #include "stdafx.h"#include "uploading.h"#include & ...

  3. Nginx+Tomcat+Memcached实现会话保持(MSM)

    会话保持的三种方式 Session sticky会话绑定:通过在前端调度器的配置中实现统一session发送至同一后发端服务器 Session cluster会话集群:通过配置Tomcat保持所有To ...

  4. [RxJS] Implement pause and resume feature correctly through RxJS

    Eventually you will feel the need for pausing the observation of an Observable and resuming it later ...

  5. android,安卓get请求的提交以及我遇到的异常

    首先说明 我是安卓4.0以上的版本,这个时候直接用网上的代码会报错的,先赋上网上的普遍代码 String uri = "http://url"; HttpGet httpGet = ...

  6. CCPC2016长春站打铁记

    Day0 晚上到的长春.很冷.到了宾馆.放了行李.然后就去吃了点火锅.很好吃.在福建吃的都没有酱.但是回去后有点拉肚子..几个队友也有同样的反应.路过了吉大.拍了一张照片.哎.压力好大. Day1 来 ...

  7. 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

    目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...

  8. AngularJs压缩时须要注意的事项

    因为AngularJS是通过控制器构造函数的參数名字来判断依赖服务名称的.所以假设你要压缩控制器的JS代码.它全部的參数也同一时候会被压缩,这时候依赖注入系统就不能正确的识别出服务了. 假如我们的Co ...

  9. activity-alias详解及应用

    activity-alias标签元素众所周知,AndroidManifest是一个xml文件,它包含很多标签元素,如application.activity.receiver等,其中有一个叫做acti ...

  10. 【BZOJ 1012】 [JSOI2008]最大数maxnumber(单调队列做法)

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1012 [题意] [题解] 后加入的元素,如果比之前的元素大, 那么之前的元素比它小的元 ...