我正在编写一个wp8应用程序,我想在第一次启动应用程序时加载一个页面,之后它再也不会出现了,我现在谷歌搜索了很长时间但仍然无法理解它,我在这个阶段只是一个初学者,仍然在学习。我不需要为此使用隔离存储,但尝试实现它是一个不同的故事。任何帮助将非常感谢。我不是要求任何人为我做这件事,我只是要求一些指导。
答案 0 :(得分:4)
如果您只想在安装应用程序后启动任何页面,则可以在应用程序启动时执行此操作:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (IsolatedStorageSettings.ApplicationSettings.Contains("IsFirstTimeLaunched") && settings["IsFirstTimeLaunched"] == "true")
{
Uri nUri = new Uri("/MainPage.xaml", UriKind.Relative);
RootFrame.Navigate(nUri);
}
else
{ settings["IsFirstTimeLaunched"] = "true" ;
settings.Save();
Uri nUri = new Uri("/FirstTimeLaunch.xaml", UriKind.Relative);
RootFrame.Navigate(nUri);
}
}
如果您在任何时候再次想要FirstTimeLaunch页面,也可以从应用内部删除此内容,假设您每30天要在启动时再次显示说明。
答案 1 :(得分:2)
至于指导 - 正如你所提到的,IsolatedStorage在这里是合适的。事实上,我认为IsolatedSotorageSettings最简单。
因此,当您的应用程序启动时,您应该确定它是否是第一次运行。
例如,您可以在App.xaml.cs
修改方法Application_Launching,以便它检查IsolatedStorageSettings中是否存在特定的密钥 - 如果不存在 - 这意味着它是第一次运行并设置一个标志。
在您知道它是否是第一次运行(或不运行)之后,您可以尝试重定向导航。我认为已经很好地解释了on this blog。
您还可以尝试从Loaded事件中的MainPage重定向(在这种情况下,您可以看到MainPage的闪烁) - 这取决于您想要实现的目标。
其他方式可能是 - 不是导航到特定页面 - 而是根据您的标志(如果是第一次运行)更改MainPage内容。
答案 2 :(得分:0)
APP加载后,在MainPage.xaml.cs中调用此方法
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (IsolatedStorageSettings.ApplicationSettings.Contains("IsFirstTimeLaunched") && (string)settings["IsFirstTimeLaunched"] == "true")
{
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
else
{
settings["IsFirstTimeLaunched"] = "true";
settings.Save();
NavigationService.Navigate(new Uri("/FirstLaunch.xaml", UriKind.Relative));
}
}