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文件中声明它