弹来弹去跑马灯!

WPF 打字效果

利用 StringAnimationUsingKeyFrames:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public ChatGPTWindow()
       {
           InitializeComponent();
           txt1.Text = "";//Textblock control
           TypewriteTextblock("我爱北京天安门,我爱祖国,我爱北京天安门,我爱祖国,我爱北京天安门,我爱祖国,我爱北京天安门,我爱祖国,我爱祖国我爱祖国我爱祖国", txt1);
 
       }
       private void TypewriteTextblock(string textToAnimate, TextBlock txt)
       {
 
           TimeSpan timeSpan = TimeSpan.FromSeconds(textToAnimate.Length/2);//相当于速度
           Storyboard story = new Storyboard();
           story.FillBehavior = FillBehavior.HoldEnd;
           story.RepeatBehavior = RepeatBehavior.Forever;
 
           DiscreteStringKeyFrame discreteStringKeyFrame;
           StringAnimationUsingKeyFrames stringAnimationUsingKeyFrames = new StringAnimationUsingKeyFrames();
           stringAnimationUsingKeyFrames.Duration = new Duration(timeSpan);
 
           string tmp = string.Empty;
           foreach (char c in textToAnimate)
           {
               discreteStringKeyFrame = new DiscreteStringKeyFrame();
               discreteStringKeyFrame.KeyTime = KeyTime.Paced;
               tmp += c;
               discreteStringKeyFrame.Value = tmp;
               stringAnimationUsingKeyFrames.KeyFrames.Add(discreteStringKeyFrame);
           }
           Storyboard.SetTargetName(stringAnimationUsingKeyFrames, txt.Name);
           Storyboard.SetTargetProperty(stringAnimationUsingKeyFrames, new PropertyPath(TextBlock.TextProperty));
           story.Children.Add(stringAnimationUsingKeyFrames);
 
           story.Begin(txt);
       }

  

posted @   wgscd  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示