我有一个故事板动画,我在资源中声明。现在如何在整个应用程序中调用该故事板?
<Storyboard x:Name="Splash">
<DoubleAnimation Duration="0:0:0.8" To="-882" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="splash" d:IsOptimized="True">
<DoubleAnimation.EasingFunction>
<SineEase EasingMode="EaseOut"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
我已经完成了一些解决方案,但他们正在使用 FindResource 来获取故事板,但它在Windows Phone中不可用。如何调用这个故事板?
答案 0 :(得分:1)
只需将Storyboard
放在PhoneApplicationPage.Resources
标记内,将x:Name
更改为x:Key
,然后在代码后面创建如下属性:
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}
然后在任何地方使用它:
SplashStoryboard.Begin(); //or other methods
如果您将故事板放在App.Resources
内,即使是通过MergedDictionaries
示例here来自外部文件
你必须改变你的财产:
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)App.Current.Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}