wpf storyboard stop

这篇具有很好参考价值的文章主要介绍了wpf storyboard stop。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Storyboard BeginStory = (Storyboard)this.FindResource("StarAnimation");
BeginStory.Begin(this,true);
.
.
.
BeginStory.Stop(this);



真麻烦 参数的问题

iscontrolable 中的true少不了 this也少不了,this是做动画的uielement

动画的属性传递信息

doubleAnimation = new DoubleAnimation(line1.Y1, line1.Y2, new System.Windows.Duration(TimeSpan.FromSeconds(secs)))
            {
                AccelerationRatio = 0,
                BeginTime = TimeSpan.FromSeconds(bsecs),
            };
            doubleAnimation.Completed += (sender, e) => { //do complete thing  };
            //这样简单点 但是不知道怎么控制 line1.BeginAnimation(Line.Y1Property, doubleAnimation);
            StoryboardLine1 = new Storyboard();
            //Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.Y)"));
            Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath(Line.Y1Property));
            Storyboard.SetTarget(doubleAnimation, this.line1);
            StoryboardLine1.Children.Add(doubleAnimation);
            

以下转载:https://blog.csdn.net/xwlyun/article/details/9156897
在wpf中我们常用storyboard故事板装载很多的动画处理Animation,我们需要用Storyboard.SetTarget设置操作的对象,需要用Storyboard.SetTargetProperty设置操作对象的操作属性PropertyPath,本例将说明一种操作属性PropertyPath的便利方法:

效果:点击button,button的横坐标x由12到300,播放过程动画

			 this.button1.RenderTransform = new TranslateTransform();

            Storyboard sb = new Storyboard();
            DoubleAnimation da = new DoubleAnimation();
            da.From = 12;
            da.To = 300;
            da.Duration = TimeSpan.FromSeconds(3);
            sb.Children.Add(da);

            DependencyProperty[] propertyChain = new DependencyProperty[]
            {
                Button.RenderTransformProperty,
                TranslateTransform.XProperty
            };

            Storyboard.SetTarget(da, this.button1);
            Storyboard.SetTargetProperty(da, new PropertyPath("(0).(1)", propertyChain));

            sb.Completed += new EventHandler((object sender1, EventArgs e1) => { MessageBox.Show("completed"); });
            sb.Begin();


一般我们在写到Storyboard.SetTargetProperty时遇到new PropertyPath,

如果是简单的属性,例如Button.WidthProperty,我们可以直接new PropertyPath(Button.WidthProperty)达到目的,
但如果你发现你需要操作到的属性无法在Button中直接’.'出来,就需要用到上例用到的属性链方法:

首先定义一个属性链:

        DependencyProperty[] propertyChain = new DependencyProperty[]
        {
            Button.RenderTransformProperty,
            TranslateTransform.XProperty
        };

属性链的写法,定义一个DependencyProperty属性的数组,该数组中的元素均是Property属性,且按照从属关系先后排列,例如上例中,我们需要先将button的RenderTransform设置为TranslateTransform,然后通过TranslateTransform的XProperty来更改button的x坐标,

当然,别忘了初始化button的RenderTransform属性= new TranslateTransform(),否则动画将没有效果。文章来源地址https://www.toymoban.com/news/detail-608188.html

到了这里,关于wpf storyboard stop的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【 Docker Desktop stopped...】--------已经解决

    windows10系统,安装docker 4.6.1版本,提示Docker Desktop stopped…,如图所示 在Stackoverflow有此问题,底下给出的解决方案是卸载4.6.1版本,在docker官网下载4.4.4版本安装。 Docker历史版本下载链接 换成4.4.4版本后,出现如下问题,更新一下WLS 2 就好了 WLS 2 更新包链接 更新之后,完美解

    2024年02月09日
    浏览(39)
  • [ABC319E] Bus Stops 题解

      给定 (n) 个公交站。对于第 (i) 个公交站,在时刻 (p_i times k,k in mathbb{N}) 有一辆公交车出发,在经过 (t_i) 的时间后,到达第 (i+1) 个公交站。   在走到第一个公交车之前需要走 (X) 时刻,做到最后一个公交站之后下车以后还需要走 (Y) 时刻。   约束: (1

    2024年02月09日
    浏览(38)
  • Jvm 之 Stop The World 机制

    stop the world(STW)机制是指在JVM运行过程中,所有的应用线程都会被暂停,JVM会执行一些特定的任务,如垃圾回收、线程栈的调整等。 在JVM执行STW期间,所有的应用线程都会被暂停, 这样可以避免在执行关键任务时,应用线程对数据进行修改,从而确保数据的一致性。 无论

    2024年02月16日
    浏览(34)
  • 启动Docker服务后显示Docker Engine stopped

    1、重新启动Docker服务:打开Windows服务管理器(可以在开始菜单中搜索),找到\\\" Docker Desktop Service \\\"或类似命名的服务,右键单击并选择\\\"重启\\\"。稍等片刻,看看是否重新启动成功 2、尝试使用完整路径来启动Docker服务。默认情况下,Docker for Windows的可执行文件位于 C:Program F

    2024年02月05日
    浏览(43)
  • Qt: ninja: build stopped: subcommand failed.

    目前使用的环境如下: 编译信息如下, 错误貌似与AotoMoc有关: 我是如何解决的: 将项目移动至C盘以外的位置, 最后Build成功, 猜测可能是权限不足之类的, 目前没有找到其他解决方案 当然也有尝试过使用管理员权限启动Qt Creator, 结果以失败告终 最后, QtCreator 10.0创建项目可勾选

    2024年02月11日
    浏览(49)
  • Flink stop 和 cancel停止 job 的区别

    后边跟的任务id 是flink的任务ID,不是yarn的 注:stop方式停止任务对 source 有要求,source必须实现了StopableFunction接口,才可以优雅的停止job 取消任务。如果在 conf/flink-conf.yaml 里面配置了 state.savepoints.dir ,会保存savepoint, 否则不会保存 savepoint。 使用 命令方式 也可以在停止的

    2024年02月07日
    浏览(43)
  • 启动docker显示Docker Engine stopped怎么办?

            在windows11系统下,我的Docker突然无法启动,打开Docker Desktop显示Docker Engine stopped… 尝试了网上好多办法,就我的问题而言,打开 控制面板-程序启用或关闭Windows功能,重新打钩选中Hyper-V后点击确定,再重启电脑问题就解决了。

    2024年02月03日
    浏览(44)
  • could not stop cortex-m device解决办法

    stm32L4下载提示 could not stop Cortex-M device! Please check the JTAG cable 新的板子焊接无法正常工作,先检查供电和复位。重点是复位,其次是时钟问题 接线是没有问题的。使用stlink下载的。cubumx中的配置打开仿真也是对的。MDK重新启动还是提示这个错误,复位电路的电阻和电容也是有

    2024年02月16日
    浏览(49)
  • Vue:@click.stop -- 阻止事件向父级元素传递

    最近遇到这么一个问题:有一个父div,包含一个子div。要求单击父div时执行fun()函数,而单击子div时不执行fun()函数。 可以使用 @click.stop 阻止事件向父级元素传递 在Vue中, @click 是一个指令,用于监听元素的点击事件。 @click.stop 是其中的一个修饰符,它的作用是阻止事件冒泡

    2024年02月11日
    浏览(46)
  • Android studio虚拟调试出现“我的APP keeps stopping”问题

     问题如图: 遇到这种情况,一看代码,也没有报错呀,怎么不能运行呢?不要慌!我们一步一步来。  在Android Studio中查看Logcat窗口,可以获取应用程序崩溃时的详细错误信息,帮助定位问题所在。 Logcat 位置如下:  滑到最下面报错位置:  具体报错如下: 这个错误的意

    2024年04月27日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包