博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF:Animation动画--KeyFramesExample帧动画(2)
阅读量:7111 次
发布时间:2019-06-28

本文共 2938 字,大约阅读时间需要 9 分钟。

KeyFrameAnimation每帧动画效果

实现效果:

  1. 方框滑块里内容与帧动画时滑块移动位置是相对的,即滑块前景边框在滑块静态背景内容中移动。。
  2. 实现帧间动画。

clipboard.png

关注点:

一、 滑块方框的背景画刷VisualBrush绑定到Image的几种方法实现?
1、源代码中作为背景方格DrawingBrush的资源实现:DrawingGroup(白底几何矩形(可选)+横竖蓝色边框划线)+图块Viewport贴图

2、转换为ImageSource类型的DrawingImage资源:

设置输出区域方框,使用上面的资源作为画刷填充

3、 显示区Border下的Canvas画布包含图像Image,其Source为上面的资源,同时在原后台代码作为滑块方框的Visual绑定源。

第一种设置属性方法:页面加载中设置画刷的Visual属性为Image实例元素

public void PageLoaded(object sender, RoutedEventArgs args){    myVisualBrush.Visual = myImage;}

第二种调试为在xaml中设置Visual属性:在VisualBrush的属性直接绑定元素。

第三种为在语法属性中设置Image,其源Source为目标元素的Source,此时需要设置Path,否则报错,与第二种有区别。
第三种在语法属性中Image的Sourc直接绑定到资源的DrawingImage。

二、方框前景边框在方框静态背景内容的相对移动实现:

1、因ViewBox、ViewPort的属性Rect为结构,通过后台代码Canvas的LayoutUpdated来显示移动的新Rect值实现。

private void ExampleCanvasLayoutUpdated(object sender, EventArgs args){    myVisualBrush.Viewbox =        new Rect(            Canvas.GetLeft(myRectangle),            Canvas.GetTop(myRectangle),            myRectangle.ActualWidth,            myRectangle.ActualHeight            );}

三、帧间位置动画及对应同一时间的行字体大小动画

1、对滑块的位置Canvas.Lef设置DoubleAnimationUsingKeyFrames值,类介绍见(1)章
2、针对帧间动画,同时实现TextBolock的行的字体大小普通DoubleAnimation,对应好BeginTime、Duration时间

<DoubleAnimationUsingKeyFrames Storyboard.TargetName="myRectangle" Storyboard.TargetProperty="(Canvas.Left)"> <DoubleAnimationUsingKeyFrames.KeyFrames>
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:5" />
<SplineDoubleKeyFrame KeySpline="0.25,0.5 0.75,1" Value="200" KeyTime="0:0:10" />
<LinearDoubleKeyFrame Value="290" KeyTime="0:0:12" />
<LinearDoubleKeyFrame Value="300" KeyTime="0:0:13.5" />
<SplineDoubleKeyFrame KeySpline="0.25,0.5 0.75,1" Value="0" KeyTime="0:0:15" />
</DoubleAnimationUsingKeyFrames.KeyFrames> </DoubleAnimationUsingKeyFrames>

转载地址:http://tpmhl.baihongyu.com/

你可能感兴趣的文章
linux ,mac连接, git pull error, chmod修改文件的权限/chown修改文件和目录的所有者
查看>>
Java类载入器 ClassLoader的解析
查看>>
js判段URL是否可用(js判段网络是否不可用)
查看>>
六一儿童节PHP宝宝又被围剿了,迅速围观!
查看>>
HTML---简介
查看>>
.Net JIT
查看>>
Yahoo Programming Contest 2019 D-Ears
查看>>
java 的exception throw try catch
查看>>
jQuery原型方法each使用和源码分析
查看>>
9.4、文件包含
查看>>
Harbinger vs Sciencepal
查看>>
.NET深入解析LINQ框架1
查看>>
FlipView 知识准备
查看>>
3D绘图计算器(geogebra[5.0.385.0])使用QQ浏览器打开下载
查看>>
深入浅出交换类排序算法(转)
查看>>
junit spring
查看>>
装饰模式(Decorator) ...
查看>>
[Android] ImageView.ScaleType设置图解
查看>>
解决IE8不兼容 background-size
查看>>
Ubuntu中Samba的安装配置和使用
查看>>