C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media.Animation;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14.  
  15. namespace AnimationTest
  16. {
  17. /// <summary>
  18. /// MainWindow.xaml 的交互逻辑
  19. /// </summary>
  20. public partial class MainWindow : Window
  21. {
  22. public MainWindow()
  23. {
  24. InitializeComponent();
  25. DoubleAnimation a = new DoubleAnimation();//定义
  26. a.RepeatBehavior = new RepeatBehavior();//重复次数,延迟不重复
  27. //a.RepeatBehavior = new RepeatBehavior(TimeSpan.Parse("0:0:15"));//整个动画持续时间,中途停止动画
  28. //a.RepeatBehavior = RepeatBehavior.Forever;//无限重复
  29. a.BeginTime=TimeSpan.Parse("0:0:1");//延迟开始时间
  30. //a.SpeedRatio = 2;//动画速度快2倍,影响TimeSpan.Parse
  31. //a.AccelerationRatio = 0.33;//加速阶段从时间百分比0%到33%
  32. //a.DecelerationRatio = 0.33;//减速阶段从时间百分比100%-33%到100%;
  33. //a.IsCumulative = true;//仅与RepeatBehavior一起使用在a.By下50-150-50跳150-200-150
  34. //a.IsAdditive = true;//获取属性默认值,从默认值开始动画
  35. //a.FillBehavior = FillBehavior.Stop;//动画完之后恢复原始值
  36. //a.From = 50;//起始,若默认值不是50则跳到50在进行动画
  37. a.AutoReverse = true;//往返
  38. //a.To = 100;
  39. a.By = ;//等于a.To = 100 + a.Form;
  40. a.Duration = new Duration(TimeSpan.Parse("0:0:5"));//花费时间
  41. b.BeginAnimation(Button.WidthProperty,a);//调用开始
  42. }
  43. }
  44. }

XMAL

  1. <Window x:Class="AnimationTest.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow" Height="" Width="">
  5. <Window.Resources>
  6. <Style x:Key="bt1" TargetType="{x:Type Button}">
  7. <Setter Property="Background" Value="Yellow"/>
  8. <Style.Triggers>
  9. <EventTrigger RoutedEvent="Button.Click">
  10. <EventTrigger.Actions>
  11. <BeginStoryboard>
  12. <Storyboard TargetProperty="Width">
  13. <DoubleAnimation To="" Duration="0:0:5" AutoReverse="True" IsAdditive="True"/>
  14. </Storyboard>
  15. </BeginStoryboard>
  16. </EventTrigger.Actions>
  17. </EventTrigger>
  18. </Style.Triggers>
  19. </Style>
  20. </Window.Resources>
  21. <Grid>
  22. <Canvas Margin="12,12,359,187">
  23. <Button x:Name="b" Width="">
  24. CS
  25. </Button>
  26. <Button Canvas.Top="" Width="" Style="{StaticResource ResourceKey=bt1}">
  27. XAML
  28. </Button>
  29. <Button Canvas.Top="">
  30. Color
  31. <Button.Background>
  32. <LinearGradientBrush>
  33. <GradientStop Color="Blue" Offset=""/>
  34. <GradientStop Color="Black" Offset="0.5"/>
  35. <GradientStop Color="Blue" Offset=""/>
  36. </LinearGradientBrush>
  37. </Button.Background>
  38. <Button.Triggers>
  39. <EventTrigger RoutedEvent="Button.Loaded">
  40. <EventTrigger.Actions>
  41. <BeginStoryboard>
  42. <Storyboard >
  43. <ColorAnimation From="Black" To="White" Duration="0:0:2" AutoReverse="True"
  44. Storyboard.TargetProperty="Background.GradientStops[1].Color"
  45. RepeatBehavior="Forever"/>
  46. <DoubleAnimation From="" To="" Duration="0:0:2" AutoReverse="True"
  47. Storyboard.TargetProperty="Background.GradientStops[1].Offset"
  48. RepeatBehavior="Forever"/>
  49. </Storyboard>
  50. </BeginStoryboard>
  51. </EventTrigger.Actions>
  52. </EventTrigger>
  53. </Button.Triggers>
  54. </Button>
  55. <Button Canvas.Top="" Canvas.Left="">
  56. Color
  57. <Button.Background>
  58. <LinearGradientBrush>
  59. <GradientStop Color="Blue" Offset=""/>
  60. <GradientStop Color="White" Offset="0.5"/>
  61. <GradientStop Color="Blue" Offset=""/>
  62. </LinearGradientBrush>
  63. </Button.Background>
  64. <Button.Triggers>
  65. <EventTrigger RoutedEvent="Button.Loaded">
  66. <EventTrigger.Actions>
  67. <BeginStoryboard>
  68. <Storyboard>
  69. <DoubleAnimation From="" To="" Duration="0:0:2" AutoReverse="True"
  70. Storyboard.TargetProperty="Background.GradientStops[1].Offset"
  71. RepeatBehavior="Forever"/>
  72. </Storyboard>
  73. </BeginStoryboard>
  74. </EventTrigger.Actions>
  75. </EventTrigger>
  76. </Button.Triggers>
  77. </Button>
  78. </Canvas>
  79. <Canvas Margin="161,12,114,174">
  80. <Canvas.Triggers>
  81. <EventTrigger RoutedEvent="Canvas.Loaded">
  82. <BeginStoryboard>
  83. <Storyboard TargetName="p2" TargetProperty="Opacity">
  84. <DoubleAnimation From="" To="" AutoReverse="True" RepeatBehavior="Forever" Duration="0:0:5"/>
  85. </Storyboard>
  86. </BeginStoryboard>
  87. </EventTrigger>
  88. </Canvas.Triggers>
  89. <Image Name="p1" Source="/AnimationTest;component/Images/p1.bmp" />
  90. <Image Name="p2" Source="/AnimationTest;component/Images/p2.bmp" />
  91. </Canvas>
  92. <Canvas Margin="400,12,12,264" Background="Black" TextBlock.Foreground="White" TextBlock.FontSize="">
  93. <Canvas.Triggers>
  94. <EventTrigger RoutedEvent="Canvas.Loaded">
  95. <BeginStoryboard>
  96. <Storyboard TargetProperty="Opacity" RepeatBehavior="Forever">
  97. <DoubleAnimation Storyboard.TargetName="title1" BeginTime="0:0:2"
  98. From="" To="" Duration="0:0:2" AutoReverse="True"/>
  99. <DoubleAnimation Storyboard.TargetName="title2" BeginTime="0:0:6"
  100. From="" To="" Duration="0:0:2" AutoReverse="True"/>
  101. <DoubleAnimation Storyboard.TargetName="title3" BeginTime="0:0:10"
  102. From="" To="" Duration="0:0:2" AutoReverse="True"/>
  103. <DoubleAnimation Storyboard.TargetName="title4" BeginTime="0:0:14"
  104. From="" To="" Duration="0:0:2" AutoReverse="True"/>
  105. <DoubleAnimation Storyboard.TargetName="title5" BeginTime="0:0:18"
  106. From="" To="" Duration="0:0:2" AutoReverse="True"/>
  107. </Storyboard>
  108. </BeginStoryboard>
  109. </EventTrigger>
  110. </Canvas.Triggers>
  111. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="" Name="title1">title1</TextBlock>
  112. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="" Name="title2">title2</TextBlock>
  113. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="" Name="title3">title3</TextBlock>
  114. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="" Name="title4">title4</TextBlock>
  115. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="" Name="title5">title5</TextBlock>
  116. </Canvas>
  117. <Canvas Margin="0,144,12,89" Background="Black">
  118. <Image Source="/AnimationTest;component/Images/1.bmp" Height="" Width="">
  119. <Image.Triggers>
  120. <EventTrigger RoutedEvent="Image.Loaded">
  121. <EventTrigger.Actions>
  122. <BeginStoryboard>
  123. <Storyboard>
  124. <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)"
  125. From="" To="" Duration="0:0:9" RepeatBehavior="Forever" AutoReverse="True"/>
  126. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.Top)"
  127. Duration="0:0:9" RepeatBehavior="Forever" AutoReverse="True">
  128. <LinearDoubleKeyFrame Value="" KeyTime="0:0:0"/>
  129. <LinearDoubleKeyFrame Value="" KeyTime="0:0:1"/>
  130. <LinearDoubleKeyFrame Value="" KeyTime="0:0:2"/>
  131. <LinearDoubleKeyFrame Value="" KeyTime="0:0:3"/>
  132. <SplineDoubleKeyFrame Value="" KeySpline="0,1 1,0" KeyTime="0:0:4"/>
  133. <SplineDoubleKeyFrame Value="" KeySpline="0,1 1,0" KeyTime="0:0:5"/>
  134. <SplineDoubleKeyFrame Value="" KeySpline="0,1 1,0" KeyTime="0:0:6"/>
  135. <DiscreteDoubleKeyFrame Value="" KeyTime="0:0:7"/>
  136. <DiscreteDoubleKeyFrame Value="" KeyTime="0:0:8"/>
  137. <DiscreteDoubleKeyFrame Value="" KeyTime="0:0:9"/>
  138. <!--KeyTime省略则匀速动画,也可以用百分比设值、Paced速率-->
  139. </DoubleAnimationUsingKeyFrames>
  140. </Storyboard>
  141. </BeginStoryboard>
  142. </EventTrigger.Actions>
  143. </EventTrigger>
  144. </Image.Triggers>
  145. </Image>
  146. </Canvas>
  147. <Canvas Margin="400,67,66,223" Background="Black" TextBlock.Foreground="White">
  148. <TextBlock Width="" Height="" Text="play">
  149. <TextBlock.Triggers>
  150. <EventTrigger RoutedEvent="Loaded">
  151. <EventTrigger.Actions>
  152. <BeginStoryboard>
  153. <Storyboard>
  154. <StringAnimationUsingKeyFrames Storyboard.TargetProperty="Text" Duration="0:0:5" RepeatBehavior="Forever" AutoReverse="True">
  155. <DiscreteStringKeyFrame Value="play"/>
  156. <DiscreteStringKeyFrame Value="Play"/>
  157. <DiscreteStringKeyFrame Value="PLay"/>
  158. <DiscreteStringKeyFrame Value="PLAy"/>
  159. <DiscreteStringKeyFrame Value="PLAY"/>
  160. <DiscreteStringKeyFrame Value="PLAY"/>
  161. </StringAnimationUsingKeyFrames>
  162. </Storyboard>
  163. </BeginStoryboard>
  164. </EventTrigger.Actions>
  165. </EventTrigger>
  166. </TextBlock.Triggers>
  167. </TextBlock>
  168. </Canvas>
  169. </Grid>
  170. </Window>

源自《WPF 揭秘》一书

WPF 各种基础动画实现的更多相关文章

  1. WPF 画线动画效果实现

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

  2. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  3. WPF中的动画——(三)时间线(TimeLine)

    WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...

  4. HT for Web基础动画介绍

    在上一篇<基于HT for Web矢量实现3D叶轮旋转>一文中,我略微提了下HT for Web基础动画的相关用法,但是讲得不深入,今天就来和大家分享下HT for Web基础动画的相关介 ...

  5. 核心动画基础动画(CABasicAnimation)关键帧动画

    1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATran ...

  6. WPF编程学习——动画

    前言 使用动画,是增强用户体验的一种有效的手段.合理的动画,可以让应用程序的界面看起来更加自然.真实.流畅.舒适,更有效地向用户展现信息,用户也更容易接受.同时也增加了软件使用的乐趣,提高用户粘度.( ...

  7. Core Animation中的基础动画

    基础动画 在开发过程中很多情况下通过基础动画就可以满足开发需求,前面例子中使用的UIView代码块进行图像放大缩小的演示动画也是基础动画(在iOS7 中UIView也对关键帧动画进行了封装),只是UI ...

  8. jQuery里面的常用的事件和基础动画的实现

    一:了解jquery里面常用的事件 二:了解基础动画的实现 1:加载DOM 在JavaScript中使用window.onload事件作为窗体加载事件(它在页面所有数据加载完成之后才会执行) 在jQu ...

  9. Core Animation 动画的使用:关键帧动画、基础动画、动画组

    首先让我们了解下什么是 Core Animation,Core Animation 为核心动画,他为图形渲染和动画提供了基础.使用核心动画,我们只需要设置起点.终点.关键帧等一些参数,剩下的工作核心动 ...

随机推荐

  1. Lucene.Net 2.3.1开发介绍 —— 三、索引(四)

    原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(四) 4.索引对搜索排序的影响 搜索的时候,同一个搜索关键字和同一份索引,决定了一个结果,不但决定了结果的集合,也确定了结果的顺序.那个 ...

  2. C#多线程实现方法——Task/Task.Factary

    原文:C#多线程实现方法--Task/Task.Factary Task 使用 Task以及Task.Factory都是在.Net 4引用的.Task跟Thread很类似,通过下面例子可以看到. st ...

  3. http调试工具Charles Proxy用法详解

    Charles Proxy 通常称为Charles,Charles是目前最强大的http调试工具,在界面和功能上远强于Fiddler,同时是全平台支持,堪称圣杯级工具,不过在这里为您提供了Charle ...

  4. HDU 3571 N-dimensional Sphere(高斯消元 数论题)

    这道题算是比较综合的了,要用到扩展欧几里得,乘法二分,高斯消元. 看了题解才做出来orz 基本思路是这样,建一个n*(n-1)的行列式,然后高斯消元. 关键就是在建行列式时会暴long long,所以 ...

  5. 基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET

    基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET 基于libevent, libuv和android L ...

  6. linux使用进阶(一)

    本文依据<应该知道的Linux技巧>coolshell上的一篇文章提到的Linux技巧,结合自己掌握的情况进行扩展和总结得来.主要包含下面内容:     一.日常操作     二.数据处理 ...

  7. sql server数据库保存图片或者其他小文件

    原文:sql server数据库保存图片或者其他小文件 测试用sql server数据库保存图片或者其他小文件. 文件流字段用varbinary类型. static void Main() { App ...

  8. selenium2支持无界面操作(HtmlUnit和PhantomJs)

    selenium2支持无界面操作(HtmlUnit和PhantomJs) selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaD ...

  9. hdu3605(最大流+状态压缩)

    传送门:Escape 题意:给出每个人适合住的星球信息和该星球能住多少人 ,第一行给出n m 代表有 n 个人 m 个星球,然后接下来n行每行m个数字 1代表适合第 i 个星球 0 代表不适合第 i ...

  10. [置顶] Guava学习之Immutable集合

    Immutable中文意思就是不可变.那为什么需要构建一个不可变的对象?原因有以下几点: 在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比).尤其当一个 ...