我目前正在开发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;
}
}
答案 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();
}
}