XAML中的简单Flipbook动画

Mis*_*ook 5 silverlight wpf xaml

我有10个XAML文件,每个文件都包含一个动画帧(它们是从SWF转换的,所以每个对象都没有关键帧信息).每个XAML文件都包含一个Canvas,每个帧都有各种形状.

我想创建1个XAML文件,其中包含每个帧的Canvas信息,然后使用XAML在适当的时间显示每个Canvas,因此每个帧都是一个接一个地显示.这是一个好方法吗?我怎样才能做到这一点?我尝试使用Blend,但似乎不可能,因为我的对象在每个帧上都不同(即我不是动画对象属性).

我只是在寻找一个声明性的解决方案.

Vic*_*cro 3

您可以尝试以下操作:

<Grid x:Name="FrameContainer">
   <Canvas x:Name="Canvas1" Visibility="Collapsed"><!-- shapes --></Canvas>
   <Canvas x:Name="Canvas2" Visibility="Collapsed"><!-- shapes --></Canvas>
   <Canvas x:Name="Canvas3" Visibility="Collapsed"><!-- shapes --></Canvas>
   <Canvas x:Name="Canvas4" Visibility="Collapsed"><!-- shapes --></Canvas>
   <Canvas x:Name="Canvas5" Visibility="Collapsed"><!-- shapes --></Canvas>
   <Canvas x:Name="Canvas6" Visibility="Collapsed"><!-- shapes --></Canvas>
   ...
</Grid>
Run Code Online (Sandbox Code Playgroud)

然后制作一个故事板,切换每个画布的可见性,使其看起来像逐帧动画。

我在项目中遇到了类似的问题,我制作了一个自定义控件,它具有 (int)Frame 依赖属性,负责隐藏/显示模板中的元素。您还可以为 Frame 属性设置动画。