假设你想要动画一些东西,哪一个更适合表现?
在XAML中使用Storyboards
?
OR
在代码隐藏中的DoubleAnimation
中的Media.Animation
等类
答案 0 :(得分:0)
第一件事是StoryBoard
不是动画。如果您按照以下示例:
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:1"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
此处创建动画并使用StoryBoard
更多信息是here
答案 1 :(得分:0)
如前所述,故事板不是动画,因此您无法对它们进行比较。
我必须假设你的问题是关于在XAML后面的代码中创建DoubleAnimation:
<Storyboard>
<DoubleAnimation />
</Storyboard>
因此,您的问题非常类似于:如果我在XAML或后面的C#代码中创建对象,是否存在性能差异。
我的答案是......起初你应该真的不在乎。引用某个肯特贝克:让它有效,让它干净,快速。在WPF中,为了使其干净,您应该实现MVVM以明确区分关注点。动画显然是一个UI问题,所以应该在视图中进行设计:你的xaml文件。
现在,如果我尝试回答您的问题,几乎没有性能差异,因为在任何情况下最终都会创建DoubleAnimation对象。
在XAML中这样做,它对你的软件架构会更好。
让我总结一下:如果你真的对你的应用程序有性能限制,那么WPF可能是一个糟糕的选择,因为它的效率并不高。 WPF的真正力量是允许这种明确的关注分离。