C# 在参考资料中声明故事板并到处调用
我在参考资料中声明了一个故事板动画。现在,如何在整个应用程序中调用该情节提要C# 在参考资料中声明故事板并到处调用,c#,windows-phone-7,storyboard,C#,Windows Phone 7,Storyboard,我在参考资料中声明了一个故事板动画。现在,如何在整个应用程序中调用该情节提要 <Storyboard x:Name="Splash"> <DoubleAnimation Duration="0:0:0.8" To="-882" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="splash"
<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中不可用。如何调用此情节提要?只需将您的
情节提要
放在电话应用程序页面内。参考资料
标记,将x:Name
更改为x:Key
,然后在代码隐藏中创建如下属性:
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)App.Current.Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}
然后随时随地使用它:
SplashStoryboard.Begin(); //or other methods
如果您将故事板放在App.Resources
中,即使是通过MergedDictionaries
example您必须按以下方式更改您的属性:
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}
public Storyboard SplashStoryboard
{
get
{
return (Storyboard)App.Current.Resources["Splash"] ?? new Storyboard();
//return a new Storyboard to avoid NullReferenceException;
}
}
什么资源?它在页面的参考资料中,你想从同一页调用它吗?不,我想在大约3页中调用那个故事板。我已经创建了一个单独的资源文件,正如在这个链接中所说的,非常好用!!谢谢你的帮助。但我想在资源文件中声明它,这样我就可以在任何地方共享它了?怎么样?您可以在App.xamlI中执行此操作。我已经按照此链接中的说明声明了资源文件,我不能在generic.xaml文件中声明吗?唯一的问题是,在调用Begin()之前,您必须在每个视图中设置TargetName。您可以在generic.xaml文件中声明它