wpf - XAML 中的简单动画书动画

标签 wpf silverlight xaml

我有 10 个 XAML 文件,每个文件都包含一个动画帧(它们是从 SWF 转换而来的,因此每个对象都没有关键帧信息)。每个 XAML 文件都包含一个 Canvas,每个帧都有不同的形状。

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

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

最佳答案

您可以尝试以下操作:

<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>

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

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

关于wpf - XAML 中的简单动画书动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5728754/

相关文章:

WPF:如何使两个控件( ListView )共享它们之间的整个可用空间?

wpf - 在其内部 ComboBox 获得焦点时选择 ListBoxItem

java - 网页: accessing local file of the client/Alternatives to Silverlight/Java Applets

wpf - 本地化 ExceptionValidationRule

wpf - WPF DataGrid 如何让卡住的行/列工作?

c# - 定时器与 DispatcherTimer 的性能

silverlight - 为类/结构的所有成员提高 INotifyPropertyChanged?

c# - Xamarin.Forms 的 native 嵌入 : not finding UIKit in global namespace,

xaml - 如何打破XAML源代码中的长字符串?

c# - UWP - 仅在设计器中应用的字体