文本前景色动画 - 颜色不变



我想使用代码隐藏在 TextBlock 中对颜色变化进行动画处理,将文本从黑色更改为红色,但它不会从黑色更改为红色,也不会产生编译时或运行时错误。

这就是我的代码的外观。我希望它在我有评论的第 21 行变为红色。它保持黑色。

TextBlock tb2= new TextBlock();
tb2.Inlines.Add("An example on ");
ColorAnimationUsingKeyFrames colorAnimation = new 
ColorAnimationUsingKeyFrames();
Color redColor = new Color();
SolidColorBrush animatedBrush = new SolidColorBrush();
animatedBrush.Color = Color.FromArgb(255, 0, 0, 0); //start black
tb2.Foreground = animatedBrush;
this.RegisterName(
"AnimatedBrush", animatedBrush);
colorAnimation.Duration = TimeSpan.FromSeconds(6);
redColor = Color.FromArgb(255, 255, 0, 0);//set red color
colorAnimation.KeyFrames.Add(
new LinearColorKeyFrame(
redColor, // Target value (KeyValue)
KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0.5)))); 
Storyboard.SetTargetName(animatedBrush, "AnimatedBrush");//change to new color
Storyboard.SetTargetProperty(
colorAnimation, new 
PropertyPath(SolidColorBrush.ColorProperty));
Storyboard myStoryboard = new Storyboard();
myStoryboard.Children.Add(colorAnimation);
Button butonier = new Button();
butonier.Content = "klikaj";
this.RegisterName("butonier", butonier);
sPanel.Children.Add(butonier);
butonier.Click += delegate (object sender, RoutedEventArgs e)
{
myStoryboard.Begin(this);
};
this.Content = sPanel; //stackpanel

你能告诉我我做错了什么吗?

主要问题在于这一行:

Storyboard.SetTargetName(animatedBrush, "AnimatedBrush");

它应该是:

Storyboard.SetTargetName(colorAnimation, "AnimatedBrush");

您也没有将文本块添加到堆栈面板。这可以转到您添加按钮的位置旁边。

sPanel.Children.Add(tb2);

如果这不能满足您的需求,请使用更多信息编辑您的问题。

相关内容

  • 没有找到相关文章

最新更新