我想知道如何发出信号是首次启动,还是之前已经启动过。我要执行此操作的原因是在使用该应用程序之前显示一条非常简短的信息,而每隔两次启动该应用程序就不会显示任何信息。我可以在App.xaml.cs中放置以下内容吗?
var settings = IsolatedStorageSettings.ApplicationSettings;
if (!settings.Contains("WasLaunched"))
{
MessageBox.Show("First time to launch");
settings.Add("WasLaunched", true);
}
如果(!settings.Contains("WasLaunched")
导航到“第一启动页面”而不是“主页”?有人可以指出我有关此实现的任何好的参考资料吗?
编辑**
我将WMAppManifest.xml
默认页面更改为LaunchPage.xaml
<DefaultTask Name="_default" NavigationPage="LaunchPage.xaml" />
并创建了我的UriMapper类
public class LoginUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
if (uri.OriginalString == "/LaunchPage.xaml")
{
if (Settings.FirstLoad.Value == true)
{
//Navigate to Welcome Page with quick first time user info
uri = new Uri("/Views/WelcomePage.xaml", UriKind.Relative);
}
else
{
///Navigate to the actual Main Page
uri = new Uri("/MainPage.xaml", UriKind.Relative);
}
}
return uri;
}
}
但是我如何相应地更改App.xaml.cs
private void Application_Launching(object sender, LaunchingEventArgs e)
{
//how to check and navigate to correct page for this specific method?
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
//how to check and navigate to correct page for this specific method?
}
您最好使用UriMapper的功能
核心思想是:
您应该定义一个空白页(EntryPage.xaml
),并将其设置为应用程序的默认页。然后在您的自定义中,UriMapper
您将重载该MapUri
方法。
public class YourUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
if (uri.OriginalString == "/EntryPage.xaml")
{
var settings = IsolatedStorageSettings.ApplicationSettings;
if (!settings.Contains("WasLaunched"))
{
uri = new Uri("/FirstRunInfoPage.xaml", UriKind.Relative);
}
else
{
uri = new Uri("/MainPage.xaml", UriKind.Relative);
}
}
return uri;
}
}
然后在应用程序初始化时,您应该定义UriMapper
使用哪个:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
RootFrame.UriMapper = new YourUriMapper();
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (e.IsApplicationInstancePreserved == false)
{
// tombstoned! Need to restore state
RootFrame.UriMapper = new YourUriMapper();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句