Windows Phone启动画面弹出窗口

时间:2012-05-11 23:13:18

标签: c# windows-phone-7 splash-screen

我目前正在开发Windows Phone应用程序,并使用弹出窗口包含动画启动画面。

public MainPage()
    {
        splashPopup = new Popup() { IsOpen = true, Child = new SplashScreenControl() };
        bgWorker = new BackgroundWorker();
        BgWorker();

        InitializeComponent();
    }

所有这一切都运行正常,但问题是当应用程序导航到另一个屏幕时,启动屏幕将再次显示,因为屏幕使用MainPage的实例。有没有办法只显示一次启动画面?

我尝试使用全局变量来检查它是否设置为true,但是因为它被初始化为false而失败了。还有哪种可能的方式?

这是我试图做的但没有奏效:

public class MainPage
{
    bool splash = false;

    public MainPage()
    {
        if (splash == false)
        {    
            splashPopup = new Popup() { IsOpen = true, Child = new SplashScreenControl() };
            bgWorker = new BackgroundWorker();
            BgWorker();
        }
        InitializeComponent();

        splash = true;
    }
}

1 个答案:

答案 0 :(得分:2)

有一个全局标志,类似于bool wasShown;,并在应用程序首次加载时将其设置为true。然后,在你拥有的构造函数中,检查标志,如果弹出窗口已经显示,则不要再显示它。

在您的代码中,splash 不是全局。它仍然存在于MainPage的上下文中。在静态App类中声明它或使用额外的静态类。以下是你应该做的事情:

public class MainPage
{
    public MainPage()
    {
        if (!App.Splash)
        {    
            splashPopup = new Popup() { IsOpen = true, Child = new SplashScreenControl() };
            bgWorker = new BackgroundWorker();
            BgWorker();
            App.Splash = true;
        }
        InitializeComponent();
    }
}