WPF编程,通过Path类型制作沿路径运动的动画另一种方法。

原文:WPF编程,通过Path类型制作沿路径运动的动画另一种方法。

版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87358989

上一篇文章给了一个这方面的例子,那个文章里是通过后台按钮事件进行动画的开始、停止、继续等。

这里给出的是通过前台XAML来实现。

1、前台

定义路径、定义运动的主体,这里是一圆。

        <Path Stroke="Black"
              StrokeThickness="1"
              Data="M 96 288 C 576 0,0 0,480 288" />

        <Path Fill="Blue">
            <Path.Data>
                <EllipseGeometry x:Name="elips"
                                 Center="90 290"
                                 RadiusX="12"
                                 RadiusY="12" />
            </Path.Data>
        </Path>

2、增加控制按钮

增加四个控制按钮,

增加四个触发动作。

        <StackPanel>
            <Button Width=" 100"
                    Height=" 30"
                    x:Name="Beginbutton"
                    Content="开始"
                    Margin="258,0,259,0" />
            <Button Width=" 100"
                    x:Name="Pausepbutton"
                    Height=" 30"
                    Content="暂停"
                    Margin="258,0,259,0" />
            <Button Width=" 100"
                    x:Name="Resumebutton"
                    Height=" 30"
                    Content="恢复"
                    Margin="258,0,259,0" />
            <Button Width=" 100"
                    x:Name="Stopbutton"
                    Height=" 30"
                    Content="停止"
                    Margin="258,0,259,0" />

            <!-- 触发器及故事板的组合 -->
            <StackPanel.Triggers>
                <!-- 很好翻译了:在按键startButton被点击的时候触发 -->
                <EventTrigger SourceName="Beginbutton"
                              RoutedEvent="Button.Click">
                    <!-- 事件触发以后做什么呢?由故事板来解决,它来产生动画效果。 -->
                    <BeginStoryboard x:Name="MyBeginStoryboard">
                        <Storyboard x:Name="story"
                                    Storyboard.TargetName="elips"
                                    Storyboard.TargetProperty="Center">
                            <PointAnimationUsingPath Duration="0:0:3"
                                                     AutoReverse="True"
                                                     RepeatBehavior="Forever">
                                <PointAnimationUsingPath.PathGeometry>
                                    <PathGeometry Figures="M 96 288 C 576 0,0 0,480 288"
                                </PointAnimationUsingPath.PathGeometry>
                            </PointAnimationUsingPath>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>

                <!-- 同理可证:pauseButton被点击的时候故事全部暂停 :PauseStoryboard -->
                <EventTrigger SourceName="Pausepbutton"
                              RoutedEvent="Button.Click">
                    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard">
                    </PauseStoryboard>
                </EventTrigger>
                <!-- 同理可证:pauseButton被点击的时候故事全部重新开始 :ResumeStoryboard -->
                <EventTrigger RoutedEvent="Button.Click"
                              SourceName="Resumebutton">
                    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard">
                    </ResumeStoryboard>
                </EventTrigger>
                <!-- 同理可证:pauseButton被点击的时候故事全部重新完全停掉 :StopStoryboard -->
                <EventTrigger RoutedEvent="Button.Click"
                              SourceName="Stopbutton">
                    <StopStoryboard BeginStoryboardName="MyBeginStoryboard">
                    </StopStoryboard>
                </EventTrigger>
            </StackPanel.Triggers>

        </StackPanel>

?

原文地址:https://www.cnblogs.com/lonelyxmas/p/10729315.html

时间: 2024-10-11 05:20:26

WPF编程,通过Path类型制作沿路径运动的动画另一种方法。的相关文章

WPF编程,通过Path类型制作沿路径运动的动画一种方法。

原文:WPF编程,通过Path类型制作沿路径运动的动画一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87339456 From/To/By 类型动画的输入是From.To和By参数: KeyFrame类型动画的输入是关键帧: 而Path类型的动画输入则是PathGeometry,这是其最大特点. ?Path类型的动画是一种可以沿指定路径运动的动画, 使用DoubleAnimationU

WPF编程,通过Double Animation动态更改控件属性的一种方法。

原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87251422 DoubleAnimation类指定起始值(From="30").终点值(To="300").时间(Duration="3"),以及动画结束应该如何(FillBehavior="Stop&qu

Java从文件路径中获取文件名的几种方法

举例:String fName =” G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif ” 方法一: 1 File tempFile =new File( fName.trim()); 2 String fileName = tempFile.getName(); 方法二: String fName = fName.trim(); String fileName = fName.subString(fName.lastIn

网络编程(一):用C#下载网络文件的2种方法

使用C#下载一个Internet上的文件主要是依靠HttpWebRequest/HttpWebResonse和WebClient.具体处理起来还有同步和异步两种方式,所以我们其实有四种组合. 1.使用HttpWebRequest/HttpWebResonse和WebClient HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); WebResponse response = request.GetResponse();

C# web api 返回类型设置为json的两种方法

每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心! 悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来.我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的

简单聊一聊那些svg的沿路径运动

之前遇见动画就很想用css实现,显然有些效果是我们力所不能及,实现起来麻烦,效果不好,让人捉急.其实归结起来,不同的动画有自己的优势,根据实际情况进行取舍.本文就告诉大家如何用SVG写出个简单动画.就让我们以路径动画为例来说明吧. 类似于下面动画,这种之前就觉得好炫酷 好吧,就算不说这个,没学习之前,svg实现的loading我也不知道怎么搞得. 当然SVG肯定不是只是来做这个的啦,这只是人家神奇的一部分.SVG的优势是 跨设备能力强.体积小.图像可透明,可以与js交互等等等等,在这里不一一介绍

WPF编程—样式

WPF编程学习——样式 本文目录 1.引言 2.怎样使用样式? 3.内联样式 4.已命名样式 5.元素类型样式 6.编程控制样式 7.触发器 1.引言 样式(Style),主要是用来让元素或内容呈现一定外观的属性.WPF中的样式的作用,就像Web中的CSS一样,为界面上的元素定制外观,以提供更好的用户界面.在WPF应用程序中,通过控件的属性,我们也可以实现更改控件的外观.但是,这种方式局限性大.不灵活且不利于维护.例如: 复制代码 <Grid> <Button Width="8

【WPF学习】第四十三章 路径和几何图形

前面四章介绍了继承自Shape的类,包括Rectangle.Ellipse.Polygon以及Polyline.但还有一个继承自Shape的类尚未介绍,而且该类是到现在为止功能最强大的形状类,即Path类.Path类能够包含任何简单形状.多组形状以及更复杂的要素,如曲线. Path类提供了Data属性,该属性接受一个Geometry对象,该对象定义路径包含的一个或多个图形.不能直接创建Geometry对象,因为Geometry是抽象类,而且需要使用下表中列出的7个派生类的一个进行创建. 表 几何

Path类型的扩展方法 z

写了一个基于System.IO.Path类型方法的扩展类型,用于快速对文件系统路径进行操作.如下图: 其中有许多方法就是直接调用Path类型的静态方法.比如AppendPath方法内部会直接调用Path.Combine.这些方法就不需要再介绍了.下面看一些许多说明的方法: ToDirectory方法会把一个文件路径放到文件夹路径内并返回结果,比如: var path =@"C:\a\b\c.jpg"; Console.WriteLine(path.ToDirectory(@"