我想在启动应用程序或激活后检查BackgroundAudioPlayer是否正在播放,如果是,则转到播放器页面。我知道我无法使用NavigationService,我发现在App.xaml.cs中,我应该像在Activated中使用RootVisual但它不起作用。 RootVisual为null。第一个没有错误,但问题是我到MainPage.xaml。那么我该如何解决呢?感谢
private void Application_Launching(object sender, LaunchingEventArgs e)
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
RootFrame.Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Playing)
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/PlayerPage.xaml", UriKind.RelativeOrAbsolute));
}
答案 0 :(得分:1)
我修改了你的代码,请看看;它会对你有用。
从Application_Activated事件中删除您的代码并将其放入Application_Launching Event。并且不要在Application_Activated中写入任何内容。(在导航上下文中)。请按照以下两个步骤进行操作:
<强> STEP-1 强>
转到 WMAppManifest.xml 文件,然后从默认任务中删除“ MainPage.xaml ”条目。并保留NavigationPage
的空白条目。像这样NavigationPage=""
请参阅以下相同的代码段。
<Tasks>
<DefaultTask Name ="_default" NavigationPage=""/>
</Tasks>
<Tokens>
<PrimaryToken TokenID="liveTilesToken" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>liveTiles</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
STEP-2 相应地更新代码
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Uri newUri = null;
newUri = true ? new Uri("/MainPage.xaml", UriKind.Relative) : new Uri("/PlayerPage.xaml", UriKind.Relative);
RootFrame.Navigate(newUri);
}
希望它有所帮助。
谢谢。