主界面的代码

<StackPanel  ButtonBase.Click="Grid_Click">
<Button Content="逐渐变大缩小"/>
<Button Content="鼠标移动特效" />
</StackPanel>

cs :

//这事件不做过多的解释有基础的一看就会明白
private void Grid_Click(object sender, RoutedEventArgs e)
{
object obj = e.OriginalSource;
Button butn = null;
if (obj is Button)
butn = obj as Button;
Type type = this.GetType();//获取当前实例
Assembly assembly = type.Assembly;//获取在其中声明的类型
//动态的实例化一个对象
Window win = (Window)assembly.CreateInstance(type.Namespace + "." + butn.Content.ToString());
win.Show(); }
下面进行第一个动画:
xaml界面
<Grid>
<Button Content="点击逐渐增长" Height="" HorizontalAlignment="Left" Margin="29,37,0,0" Name="btnGrow1" VerticalAlignment="Top" Width="" />
<Button Content="点击逐渐归位" Height="" HorizontalAlignment="Left" Margin="86,88,0,0" Name="btnBack" VerticalAlignment="Top" Width="" />
<Button Content="点击增长" Height="" HorizontalAlignment="Left" Margin="98,161,0,0" Name="btnGrow" VerticalAlignment="Top" Width="" />
</Grid>
cs:
public 逐渐变大缩小()
{
InitializeComponent();
//给button注册点击事件
btnGrow1.Click += new RoutedEventHandler(btnGrow1_Click);
btnBack.Click += new RoutedEventHandler(btnBack_Click);
btnGrow.Click += new RoutedEventHandler(btnGrow_Click);
}
//点击增长
void btnGrow_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation widthAnimation = new DoubleAnimation() { By=,Duration=TimeSpan.FromSeconds(0.2) };
btnGrow.BeginAnimation(Button.WidthProperty, widthAnimation);
}
//还原动画
void btnBack_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation widthAmination = new DoubleAnimation();
widthAmination.Duration = TimeSpan.FromSeconds();
DoubleAnimation heightAmimation = new DoubleAnimation();
heightAmimation.Duration = TimeSpan.FromSeconds();
btnGrow1.BeginAnimation(Button.WidthProperty, widthAmination);
btnGrow1.BeginAnimation(Button.HeightProperty, heightAmimation);
}
//逐渐增长事件
void btnGrow1_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation widthAnimation = new DoubleAnimation()
{
To = this.Width - ,
Duration = TimeSpan.FromSeconds()
};
DoubleAnimation heightAnimation = new DoubleAnimation()
{
To=(this.Height-)/,
Duration=TimeSpan.FromSeconds()
};
btnGrow1.BeginAnimation(Button.WidthProperty, widthAnimation);
btnGrow1.BeginAnimation(Button.HeightProperty, heightAnimation);
}
好了现在的一个简单点击放大缩小的动画就做好了
小结:1,本例中在菜单窗体中用到了用到了一个 ButtonBase.Click特别说明一下这个事件很好用如果一个界面上的按钮很多
每个事件都需要弹出一个窗体用这个最好用,节省代码,
2,在WPF中要实现动画就需要DoubleAnimation这个类,按照自己的想法从初始状态From定义到结束To状态在多长事件内完成Duration
最后需要一个控件来触发动画例如:
   btnGrow1.BeginAnimation(Button.WidthProperty, widthAnimation);
这段代码的意思就是
btnGrow1控件点击是触发widthAnimation这个动画,影响的对象就是这个控件的width
好了就写到这里,以后还会有,wpf,很有意思,相比起winform来他的界面更加灵活,代码编写也更加灵活,
界面的色彩也很好定义,另外动画也可以下载axml中,但是本人不喜欢在界面设计窗台上写这些,在后台写的话跟能看的清楚。

WPF动画制作简单的按钮动画的更多相关文章

  1. Microsoft Expression Blend 4制作简单的按钮

    在博客园混了这么久了,第一次写博客.本人标准的理工男,文笔不敢说一般,只能用还学过语文.勉强达意而已.见笑!! 由于本人能有有限,错误之处在所难免,望大牛们批评指正,共同进步.^_^!!!!!!!!! ...

  2. Laya的动画制作,整图动画,序列图动画,时间轴动画,龙骨动画

    参考: Laya动画基础 Egret帧动画工具类 版本:2.1.1.1 序列图动画 白鹭的序列图动画,使用TexureMerger合图,然后使用MovieClip类播放. Laya的话,使用图集打包工 ...

  3. PhotoShop制作简单的文字动画--多媒体技术与应用

    下面是最终实现的效果图: 1.新建图像,设置图像属性如下所示. 2.使用[横排文字工具]在背景图像上打上文字内容 3.[图层]——>[图层式样]——>[渐变叠加] 出现“图层样式”面板 4 ...

  4. 8款超酷而实用的CSS3按钮动画

    1.CSS3分享按钮动画特效 这是一款基于CSS3的社会化分享按钮,按钮非常简单,提供了分享到twitter.facebook.youtube等大型社交网站.每一个分享按钮都有个大社交网站的Logo图 ...

  5. WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。

    原文:WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...

  6. canvas制作简单动画

    在画布元素<canvas>中,除了绘制图形.图像.文字外,还可以制作一些简单的动画,制作过程十分简单,主要分为两步操作: 1.自定义一个函数,用于图形的移动或其他动作. 2.使用setIn ...

  7. WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体

    原文:WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体 运行结果: 事实上很简单,定义好一个正方体,处理好纹理.关于MeshGeometry3D的正确定义和纹理这里就不多讲 ...

  8. 简单的UIButton按钮动画效果iOS源码

    这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性. 效果图: <ignore_js_op> 使用方法: 使用时把ButtonA ...

  9. CSS3动画制作的简单示例

    CSS3 大大强化了制作动画的能力,但是如果要做出图案比较复杂的动画,选择 GIF 依然是一个不错的选择.今天给大家介绍一个使用 CSS animation 配合雪碧图(CSS sprite)来制作动 ...

随机推荐

  1. Oracle基础 06 控制文件 controlfile

    --查看控制文件路径 show parameter control_files; --控制文件的备份,三种方式1)使用OS命令进行拷贝:1)open状态下,使用alter database命令生成控制 ...

  2. python 监控redis的进程与端口

    #!/usr/bin/python # -*- coding:utf-8 -*- import glob,psutil import json,os,datetime import collectio ...

  3. DRF的限流功能

    限流,可以对接口访问的频次进行限制,以减轻服务器压力. 全局配置 在settings.py上添加 REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'r ...

  4. 记一次Laravel定时任务导致日志没有写入权限的坑

    问题:用laravel开发定时任务时,发生了日志没有写入权限导致项目打不开的问题 原因:linux的添加定时任务时默认是当前登录用户,我定时任务会生成日志 crontab: kernel: 生成日志的 ...

  5. WebDriver框架之自动运行失败的case

    大家在运行自动化case的时候都会碰到失败的情况,有的时候可能是被测程序有bug,还有就是网络的问题,如果想采取失败的case再运行一次的机制,那么有bug的情况,即使再运行N次还是失败,那么如果是网 ...

  6. JavaWEB开发框架:Shiro

    通过了三个月的实习,在javaWEB开发的过程当中,学习到了一些新的知识,特此记录一下学习到的一种新的WEB开发当中常用的用户认证和授权的安全框架,Shiro. 首先,要先知道shiro这个框架主要在 ...

  7. thinkphp函数学习(1)——header, get_magic_quotes_gpc, array_map, stripslashes, stripslashes_deep

    1. header 相关语句 header('Content-type: text/html; charset=utf-8'); // 因为这是在TP的入口文件中,所以每个页面返回的http head ...

  8. HBASE启动失败,Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster

    Master日志错误:2015-12-02 06:34:32,394 ERROR [main] master.HMasterCommandLine: Master exitingjava.lang.R ...

  9. 选择快速源来加速linux系统更新

    sudo pacman-mirrors -c China -g 引用自manjaro百度贴吧

  10. matlab的table数据类型初步接触

    由于数据分析,接触到cell的使用,字符串的使用以及ASCII的使用,但是发现在matlab中进行这样的操作相对繁琐,然后知道了table数据类型,是matlab新的数据类型,于2013版开始引入.据 ...