PathAnimation

简介: 原文:PathAnimation使用Blend制作PathAnimation 1:选中Path转换为运动路径 2:选择目标对象   PathAnimation使用动态的Path PathAnimation动画在播放的时候,PahtGeometry是已经确定的,不会改变,不会实时的根据Pa...
原文: PathAnimation

使用Blend制作PathAnimation

1:选中Path转换为运动路径

2:选择目标对象

 

PathAnimation使用动态的Path

PathAnimation动画在播放的时候,PahtGeometry是已经确定的,不会改变,不会实时的根据Path的改变动画进行调整,所以是不能进行绑定

只有在每一次需要播放动画之前读取相关的Path的Data,读取当前的PathGeometry然后开始动画

 1    <Path x:Name="path" Stroke="DarkGray" StrokeThickness="3">
 2             <Path.Data>
 3                 <PathGeometry>
 4                     <PathFigure 
 5                         StartPoint="{Binding Center, ElementName=ptStart}">
 6                         <BezierSegment 
 7                             Point1="{Binding Center, ElementName=ptCtrl1}"
 8                             Point2="{Binding Center, ElementName=ptCtrl2}"
 9                             Point3="{Binding Center, ElementName=ptEnd}"/>
10                     </PathFigure>
11                 </PathGeometry>
12             </Path.Data>
13         </Path>

 

 1  private void Button_Click(object sender, RoutedEventArgs e)
 2         {
 3             Canvas.SetLeft(this.truck, -this.truck.ActualWidth / 2);
 4             Canvas.SetTop(this.truck, -this.truck.ActualHeight / 2);
 5             this.truck.RenderTransformOrigin = new Point(0.5, 0.5);
 6 
 7             MatrixTransform matrix = new MatrixTransform();
 8             this.truck.RenderTransform = matrix;
 9 
10             NameScope.SetNameScope(this, new NameScope());
11             this.RegisterName("matrix", matrix);
12 
13             MatrixAnimationUsingPath matrixAnimation = new MatrixAnimationUsingPath();
14             matrixAnimation.PathGeometry = this.path.Data.GetFlattenedPathGeometry();
15             matrixAnimation.Duration = new Duration(TimeSpan.FromSeconds(5));
16 
17             //matrixAnimation.AutoReverse = true;   //重复
18             //matrixAnimation.IsOffsetCumulative = !matrixAnimation.AutoReverse;
19             //matrixAnimation.RepeatBehavior = RepeatBehavior.Forever;
20             matrixAnimation.DoesRotateWithTangent = false;   //旋转
21 
22             Storyboard story = new Storyboard();
23             story.Children.Add(matrixAnimation);
24             Storyboard.SetTargetName(matrixAnimation, "matrix");
25             Storyboard.SetTargetProperty(matrixAnimation, new PropertyPath(MatrixTransform.MatrixProperty));
26             story.Begin(this);
27         }

 

目录
相关文章
|
11月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
Web App开发 Linux iOS开发
Chrome浏览器如何导出所有书签并导入书签
【11月更文挑战第4天】本文介绍了如何在 Chrome 浏览器中导出和导入书签。导出时,打开书签管理器,点击“整理”按钮选择“导出书签”,保存为 HTML 文件。导入时,同样打开书签管理器,点击“整理”按钮选择“导入书签”,选择之前导出的 HTML 文件即可。其他主流浏览器也支持导入这种格式的书签文件。
11017 2
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——测试
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——测试
|
SQL 分布式计算 监控
EMR Workflow 开启公测,100%兼容开源 Apache DolphinScheduler
EMR Workflow 是一个全托管的工作流和任务调度服务,100%兼容开源 Apache DolphinScheduler。它提供了易于使用的调度服务,您可以通过可视化的操作界面轻松地管理工作流和任务,高效构建数据仓库,并为生产任务的稳定运行提供保障。
877 1
|
人工智能 监控 安全
智慧园区方案:AI 与视频融合技术如何助力园区监管智能化升级
随着科技的不断发展,人工智能(AI)技术正在各个领域迅速应用和推广。其中,智慧园区是一个重要的应用场景,它通过 AI 技术的支持,实现了园区的智能化管理和高效运营。
626 0
|
传感器 存储 算法
使用车载激光雷达数据在惯性测量单元读数帮助下构建地图
处理来自安装在车辆上的传感器的 3-D 激光雷达数据,以便在惯性测量单元 (IMU) 读数的帮助下逐步构建地图。这样的地图可以促进车辆导航的路径规划,也可以用于定位。
343 0
|
云计算 物联网 运维
一群有趣的灵魂,奋斗在中国数字化转型中
在各行各业中,一群有观点,敢于创新,勇于面对挑战的技术达人,正在全面地参与中国数字化转型,为中国在前沿科技实践中贡献自己一份力量!
2522 57
|
存储 缓存 NoSQL
40.【面试宝典】面试宝典-redis持久化
【面试宝典】面试宝典-redis持久化
40.【面试宝典】面试宝典-redis持久化
|
存储 SQL 监控
Mysql的外键约束、内外连接查询以及锁(下)
Mysql的外键约束、内外连接查询以及锁(下)
230 0
|
算法 计算机视觉 Java
图像处理------调整亮度与对比度
<p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">很多时候,一张图像被过度曝光显得很白,或者光线不足显得很暗,有时候背景跟图像人物</p> <p style="color: rgb(51, 51, 51); font-family: Arial; font-siz
2252 1

热门文章

最新文章