首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColorAnimation在矩形中改变颜色

ColorAnimation在矩形中改变颜色
EN

Stack Overflow用户
提问于 2014-06-12 12:37:09
回答 1查看 2.7K关注 0票数 0

我想要改变长方形的颜色,但是,颜色不会改变。问题在哪里?

代码语言:javascript
复制
ColorAnimation col = new ColorAnimation();
col.From = Colors.Aqua;
col.To = Colors.PaleGreen;
col.Duration = new Duration(TimeSpan.FromSeconds(1));

Storyboard zgo = new Storyboard();
Storyboard.SetTarget(col, c);
Storyboard.SetTargetProperty(col,
           new PropertyPath(SolidColorBrush.ColorProperty));
zgo.Children.Add(col);
zgo.Begin();

这是XAML:

代码语言:javascript
复制
<Rectangle Name="rec"
    Height="100" Width="200"
    HorizontalAlignment="Left" VerticalAlignment="Top"
    Stroke="Black"
    MouseLeftButtonDown="rec_MouseLeftButtonDown">
    <Rectangle.Fill>
        <SolidColorBrush x:Name="c"></SolidColorBrush>
    </Rectangle.Fill>
</Rectangle>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 12:44:33

通过调用Animatable.BeginAnimation直接运行动画

代码语言:javascript
复制
var colorAnimation = new ColorAnimation(
    Colors.Aqua, Colors.PaleGreen, TimeSpan.FromSeconds(1));

c.BeginAnimation(SolidColorBrush.ColorProperty, colorAnimation);

您仍然可以通过使用矩形作为动画的目标,使用Fill.Color作为目标属性来完成这一任务::

代码语言:javascript
复制
Storyboard storyboard = new Storyboard();
Storyboard.SetTarget(colorAnimation, rec);
Storyboard.SetTargetProperty(colorAnimation, new PropertyPath("Fill.Color"));
storyboard.Children.Add(colorAnimation);
storyboard.Begin();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24184584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档