wpf 如何让两个动画同时动起来

要C#后台代码,O(∩_∩)O谢谢!... 要C#后台代码,O(∩_∩)O谢谢! 展开
 我来答
匿名用户
2015-01-08
展开全部
定义好两个动画后,直接在后台同时调用Begin方法啊。
不过建议将两个Animation动画写在一个Storyboard中。然后对Storyboard定义x:Key。最后在后台代码中对动画调用Begin方法。
例如:(没经过编译器确认,写个思路提醒吧。)
XAML:
<Storyboard x:Key="abc">
<DoubleAnimation ..... />
<DoubleAnimation ..... />
</Storyboard>
C#
abc.Begin();
追问
能否些具体一点啊?比如说XAML代码的一般结构(具体放在代码在哪个位置)。谢谢!
追答
额。我上面说的方法是在Metro中的写法。WPF中,没试出来。在WPF中好像写在EventTrigger可以。就在C#中定义吧。
XAML:

C#:
var s = new Storyboard();
var a1 = new DoubleAnimation();
Storyboard.SetTargetName(a1, "gidPanel");
Storyboard.SetTargetProperty(a1, new PropertyPath(Grid.OpacityProperty));
a1.From = 1;
a1.To = 0;
a1.Duration = new Duration(new TimeSpan(0, 0, 1));
var a2 = new DoubleAnimation();
Storyboard.SetTargetName(a2, "gidPanel");
Storyboard.SetTargetProperty(a2, new PropertyPath(Canvas.LeftProperty));
a2.From = 0;
a2.To = 100;
a2.Duration = new Duration(new TimeSpan(0, 0, 1));
s.Children.Add(a1);
s.Children.Add(a2);
s.Begin(this);
叶落秋寒
2015-10-04 · 娱乐爱好者
叶落秋寒
娱乐爱好者
采纳数:110 获赞数:8380
西安通讯公司优秀实习员工

向TA提问 私信TA
展开全部
可以使用BeginAnimation( )方法同时加载多个动画。BeginAnimation( )方法几乎总是立即返回,从而可以使用类似下面的代码同时为两个属性应用动画:
DoubleAnimation widthAnimation = new DoubleAnimation();
widthAnimation.From = 160;
widthAnimation.To = this.Width - 30;
widthAnimation.Duration = TimeSpan.FromSeconds(5);
DoubleAnimation heightAnimation = new DoubleAnimation();
heightAnimation.From = 40;
heightAnimation.To = this.Height - 50;
heightAnimation.Duration = TimeSpan.FromSeconds(5);
cmdGrow.BeginAnimation(Button.WidthProperty, widthAnimation);
cmdGrow.BeginAnimation(Button.HeightProperty, heightAnimation);
在这个示例中,两个动画没有被同步。这意味着宽度和高度不会准确地在相同的时间间隔内增长(通常,将会看到按钮先增加宽度紧接着增加高度)。可以通过创建绑定到同一个时间线的动画,突破这一限制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式