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

二、前台代码:
<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();
WPF 文本逐字一个个出现的动画效果的更多相关文章
- WPF实现左右移动(晃动)动画效果
原文:WPF实现左右移动(晃动)动画效果 实现控件或布局的左右移动(晃动)主要用到DoubleAnimation以及Storyboard 布局代码为: <Canvas> <Grid ...
- WPF制作子窗体的弹出动画效果
创建一个WPF应用程序WpfApplication1,新建个窗体DialogWin <Windowx:Class="WpfApplication1.DialogWin" xm ...
- 【HTML5游戏开发小技巧】RPG情景对话中,令文本逐字输出
以前用JAVAscript实现过令文本逐字输出的效果,今天我来用html5中的canvas实现一下.canvas里的内容可不像<p>那样好操作,首先,你需要懂得一些html5的API才能操 ...
- 用POP动画编写带富文本的自定义动画效果
用POP动画编写带富文本的自定义动画效果 [源码] https://github.com/YouXianMing/UI-Component-Collection [效果] [特点] * 支持富文本 * ...
- 【WPF学习】第五十三章 动画类型回顾
创建动画面临的第一个挑战是为动画选择正确的属性.期望的结果(例如,在窗口中移动元素)与需要使用的属性(在这种情况下是Canvas.Left和Canvas.Top属性)之间的关系并不总是很直观.下面是一 ...
- WPF 文本框添加水印效果
有的时候我们需要为我们的WPF文本框TextBox控件添加一个显示水印的效果来增强用户体验,比如登陆的时候提示输入用户名,输入密码等情形.如下图所示: 这个时候我们除了可以修改TextBox控件的控件 ...
- WPF文本框密码框添加水印效果
WPF文本框密码框添加水印效果 来源: 阅读:559 时间:2014-12-31 分享: 0 按照惯例,先看下效果 文本框水印 文本框水印相对简单,不需要重写模板,仅仅需要一个VisualBrush ...
- wpf image控件循环显示图片 以达到动画效果 问题及解决方案
1>最初方案: 用wpf的image控件循环显示图片,达到动画效果,其实就是在后台代码动态改变Image.Source的值,关键代码: ; i < ; i++)//六百张图片 { Bitm ...
- 《Programming WPF》翻译 第8章 1.动画基础
原文:<Programming WPF>翻译 第8章 1.动画基础 动画包括在一段时间内改变用户界面的某些可见的特征,如它的大小.位置或颜色.你可以做到这一点,非常困难的通过创建一个tim ...
- WPF异步载入图片,附带载入中动画
原文:WPF异步载入图片,附带载入中动画 WPF异步载入图片,附带载入中动画 最近,在做一个WPF项目.项目中有一个需求,就是以列表的方式显示出项目图片.这些图片有的存在于互联网上,有的存在于本地磁盘 ...
随机推荐
- 《自定义工作流配置,springboot集成activiti,前端vue,完整版审批单据》
前言 activiti工作流引擎项目,企业erp.oa.hr.crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求. 一.项目形式 springboot+v ...
- 学习Java Day7
今天学习了if语句和C/C++基本无差异,也再次练了一下Java的输入
- JZOJ 4211. 【五校联考1day2】送你一颗圣诞树
题目 解析 \(Code\) #include<cstdio> #include<map> #include<iostream> #include<cstri ...
- OS-HACKNOS-2.1
HACKNOS: RECONFORCE (V1.1) 目录 HACKNOS: RECONFORCE (V1.1) 1 信息收集 1.1 端口扫描 1.2 ftp分析 1.3 后台目录扫描 1.2.1 ...
- Linux内存占用过高排查过程
1 查看服务器状态 系统是 CentOS Linux release 7.5.1804 (Core)使用top命令看了下系统的状态 系统的整体负载和cpu并不高,但是内存使用比较高(总8G使用了7.2 ...
- CSS 数学函数与容器查询实现不定宽文本溢出跑马灯效果
在许久之前,曾经写过这样一篇文章 -- 不定宽溢出文本适配滚动.我们实现了这样一种效果: 文本内容不超过容器宽度,正常展示 文本内容超过容器的情况,内容可以进行跑马灯来回滚动展示 像是这样: 但是,之 ...
- LeetCode-28 实现strStr() KMP算法的学习
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/repeated-string-match 题目描述 给定两个字符串 a 和 b,寻找重复叠加字符 ...
- (四)Mysql之索引介绍
索引数据结构的选择:Hash表.二叉树.平衡二叉树.(红黑树近似于平衡二叉树).B树.B+树1)Hash表:Java的HashMap.TreeMap就是Hash表结构,以键值对存储,时间复杂度是O(1 ...
- 如何用HP 39GS计算器画出双曲线图像
1.双曲线标准方程和参数方程 2.计算器上的操作 1.打开APLET->Parametric->START 2.设置X1(T)=3/COS(T),X2(T)=4*TAN(T) 3.SHIF ...
- Matplotlib 实现画中画
需要导入的包 inset_axes 要实现画中画,即在原画轴上添加新轴,需要用到mpl_toolkits.axes_grid1.inset_locator的inset_axes. 基本用法 new_a ...