首页 > 其他分享 >WPF 文本逐字一个个出现的动画效果

WPF 文本逐字一个个出现的动画效果

时间:2022-12-02 14:24:14浏览次数:33  
标签:动画 Storyboard 逐字 animationUsingKeyFrames 关键帧 new WPF colorAnimation

一、效果图:

 

 

二、前台代码:

<Grid>
        <TextBlock Foreground="Transparent" x:Name="text" TextWrapping="Wrap" >
                刚刚想半天都不知道取个什么标题好,我想了又想,还是想不出来
            与 From/To/By 动画类似,关键帧动画对目标属性的值进行动画处理。 它通过其 Duration 在目标值之间创建过渡。 但是,From/To/By 动画可以在两个值之间创建过渡,而单个关键帧动画可以在任意数量的目标值之间创建过渡。 不同于 From/To/By 动画,关键帧动画没有设置其目标值所需的 From、To 或 By 属性。 关键帧动画的目标值使用关键帧对象进行描述,因此称作“关键帧动画”。 若要指定动画的目标值,请创建关键帧对象并将其添加到动画的 KeyFrames 集合。 动画运行时,将在指定的帧之间过渡。
某些关键帧方法除支持多个目标值外,甚至还支持多个内插方法。 动画的内插方法定义了从一个值过渡到下一个值的方式。 有三种内插类型:离散、线性和曲线。

若要使用关键帧动画进行动画处理,需要完成下列步骤。
            <TextBlock.TextEffects>
                <TextEffect PositionCount="5"   x:Name="MyTextEffect">
                    <TextEffect.Foreground>
                        <SolidColorBrush Color="Red"/>
                    </TextEffect.Foreground>
                </TextEffect>
            </TextBlock.TextEffects>
        </TextBlock>
    </Grid>

 

三、后台代码:

Int32AnimationUsingKeyFrames animationUsingKeyFrames= new Int32AnimationUsingKeyFrames();
            int count=text.Text.Length;
            for (int i = 0; i < count; i++)
            {
                animationUsingKeyFrames.KeyFrames.Add(new DiscreteInt32KeyFrame { Value = i, KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(i*0.03)) });
            }
            animationUsingKeyFrames.Duration = TimeSpan.FromSeconds(count*0.03);
            animationUsingKeyFrames.RepeatBehavior = RepeatBehavior.Forever;
            //animationUsingKeyFrames.AutoReverse= true;
            //MyTextEffect.BeginAnimation(TextEffect.PositionCountProperty, animationUsingKeyFrames);
            Storyboard sb=new Storyboard();
            
            Storyboard.SetTarget( animationUsingKeyFrames, text);   
            Storyboard.SetTargetProperty(animationUsingKeyFrames, new PropertyPath("(TextBlock.TextEffects)[0].(TextEffect.PositionCount)"));
            sb.Children.Add(animationUsingKeyFrames);

            ColorAnimation colorAnimation = new ColorAnimation();
            colorAnimation.From = Colors.Black;
            colorAnimation.To = Colors.Blue;
            colorAnimation.Duration = TimeSpan.FromSeconds(1);
            colorAnimation.RepeatBehavior = RepeatBehavior.Forever;
            colorAnimation.AutoReverse = true;
            Storyboard.SetTarget(colorAnimation, text);
            Storyboard.SetTargetProperty(colorAnimation, new PropertyPath("(TextBlock.TextEffects)[0].(TextEffect.Foreground).(SolidColorBrush.Color)"));//(TextEffect.Foreground).(SolidColorBrush.Color)
            sb.Children.Add(colorAnimation);
            sb.Begin();

 

标签:动画,Storyboard,逐字,animationUsingKeyFrames,关键帧,new,WPF,colorAnimation
From: https://www.cnblogs.com/yeshuimaowei/p/16944332.html

相关文章

  • 在Towify中如何配置 3D 翻转动画?
    效果展示:前置准备:准备需要执行翻转动画的卡片(下文简称“翻转卡片”)步骤分解:创建自定义动画选中翻转卡片点击+按钮添加自定义动画配置动画效果选中图片组件点击检查面板中......
  • WPF MVVM模式下如何给Textbox设置焦点(GalaSoft.MvvmLight)
    项目场景:最近在使用WPFMVVM模式进行开发的时候遇到了个头大的问题,就是如何通过VM去驱动V里面的试图控件,例如最简单的通过VM里面去控制前端页面里面的文本框焦点问题,平常简......
  • UE4学习笔记22——【动画】动画蓝图、播放蒙太奇 和打包
    P60.动画蓝图、播放蒙太奇和打包P60(接P59的项目继续做)(任务目标:WASD正常走路的动作,按shift跑步,什么都不按站着,按F跳舞)在“内容浏览器”的“角色蓝图”文件夹,右键“......
  • IOS图片裁剪和小图看大图动画
    IOS的UIImagePickerController可以让用户通过相机或者相册获取想要的图片,并且通过设置allowsEditing属性允许用户在选择了图片以后对图片进行裁剪。不过在某些时候会出现正......
  • 10个CSS3动画工具,值得你收藏!
    人类对于运动的食物往往会投入更多的关注,因此巧妙的使用动画能够极大地提升网站的用户体验,快速唤起用户对重要元素的关注。在css3中引入了全新的动画语法,它能够帮助你在设计......
  • wpf Datagrid绑定 Dictionary
    原文网址: https://www.cnblogs.com/zany-hui/articles/7623874.html数据源格式:Dictionary<int,List<string>>1.通过xaml设置<DataGridx:Name="dg"ItemsSource="{Bi......
  • WPF中单位
    WPF中单位WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI(DotsPerInch,每英寸点数)设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果......
  • WPF 四种尺寸单位
    像素 px默认单位可以省略厘米cm英寸in点pt1in=96px1cm=96/2.42px1pt=96/72px   postedon 2018-08-3011:56 NET未来之路 阅读( ...)评论(......
  • WPF在国内还有希望和前途吗?
    WPF在国内还有希望和前途吗? 为什么大公司不会使用它?QQ出了个概念版还很少更新,wpf是不是没前途了? 作者:匿名用户链接:https://www.zhihu.com/question/26862663/an......
  • .net core/5/6/7中WPF如何优雅的开始开发
    .netcore/5/6/7中WPF如何优雅的开始开发 WPF是微软的.net平台中的一个桌面客户端应用程序框架,经常用于企业开发windows桌面客户端,广泛应用于中小企业快速开发一款......