包装故事板

时间:2011-11-06 09:05:43

标签: c# .net wpf xaml

我正在开发一个WPF应用程序,它由一个窗口和许多动画组成。这些动画分为六个不同的故事板,放在这个部分时效果很好。我的问题是,我想以某种方式将这些故事板放在其他地方,就像在他们自己的文件中一样。这样可以减少混乱的代码并使其可重用。我了解到故事板不能驻留在ResourceDirectory中,但还有其他一些我不知道的分割故事板的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以考虑创建一种行为来封装这些动画。我通常做的是,将我的故事板翻译成c#代码,然后将它们置于行为中。

如果您认为将这些动画转换为c#是一项工作,您也可以尝试将xaml代码放入一个只读字符串中,就像这样,

internal static readonly string MyStoryboard =
@"<Storyboard xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
    <DoubleAnimation Duration=""0"" To=""1"" Storyboard.TargetProperty=""(UIElement.Opacity)"" Storyboard.TargetName=""LayoutRoot"" />
</Storyboard>";

然后只使用XmlReader.Load加载它。像这样的东西,

_storyboard = XamlReader.Load(Storyboards.MyStoryboard) as Storyboard;

希望这会有所帮助。 :)

答案 1 :(得分:0)

我们确定故事板不能在ResourceDictionary中吗?我觉得我自己就是这样做的。 Also, this.