显示扩展的 SplashScreen 删除了我的后退按钮 C# UWP
Showing Extended SplashScreen Removed my Back Button C# UWP
我已使用这篇文章将 BackButton 添加到我的 UWP 应用程序:http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps then I wanted to add an ExtendedSplashScreen to my App. So I used this article: http://www.c-sharpcorner.com/UploadFile/020f8f/universal-windows-platform-and-extended-splash-screen/
但是当我添加我的 ExtendedSplashScreen 时,BackButton 从我在 MainPage 之后打开的页面中消失了。我知道这与我所说的根框架有关,但我不知道应该更改什么。有帮助吗?
来自 DismissExtendedSplash
方法的代码覆盖框架和 OnNavigated
事件。
你可以使用一个小技巧。在App.xaml.cs中,将rootFrame
设为全局变量:
public static Frame rootFrame;
并添加:
public static new App Current
{
get { return Application.Current as App; }
}
现在你的 DismissExtendedSplash
可能是这样的:
async void DismissExtendedSplash()
{
await Task.Delay(TimeSpan.FromSeconds(3)); // set your desired delay
App.rootFrame.Navigate(typeof(MainPage));
}
这里的问题是在DismissExtendedSplash
方法中,作者创建了一个新的rootFrame
并将其设置为Window.Current.Content
。这会覆盖 App.xaml.cs 中创建的 rootFrame
,因此处理后退按钮的代码将不起作用。要解决此问题,您可以在 DismissExtendedSplash
方法中使用 Window.Current.Content as Frame
来获取 rootFrame
,如下所示:
private async void DismissExtendedSplash()
{
await Task.Delay(TimeSpan.FromSeconds(3));
// set your desired delay
//rootFrame = new Frame();
//MainPage mainPage = new MainPage();
//rootFrame.Content = mainPage;
//Window.Current.Content = rootFrame;
//rootFrame.Navigate(typeof(MainPage)); // call MainPage
((Window.Current.Content) as Frame).Navigate(typeof(MainPage));
}
我已使用这篇文章将 BackButton 添加到我的 UWP 应用程序:http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps then I wanted to add an ExtendedSplashScreen to my App. So I used this article: http://www.c-sharpcorner.com/UploadFile/020f8f/universal-windows-platform-and-extended-splash-screen/
但是当我添加我的 ExtendedSplashScreen 时,BackButton 从我在 MainPage 之后打开的页面中消失了。我知道这与我所说的根框架有关,但我不知道应该更改什么。有帮助吗?
来自 DismissExtendedSplash
方法的代码覆盖框架和 OnNavigated
事件。
你可以使用一个小技巧。在App.xaml.cs中,将rootFrame
设为全局变量:
public static Frame rootFrame;
并添加:
public static new App Current
{
get { return Application.Current as App; }
}
现在你的 DismissExtendedSplash
可能是这样的:
async void DismissExtendedSplash()
{
await Task.Delay(TimeSpan.FromSeconds(3)); // set your desired delay
App.rootFrame.Navigate(typeof(MainPage));
}
这里的问题是在DismissExtendedSplash
方法中,作者创建了一个新的rootFrame
并将其设置为Window.Current.Content
。这会覆盖 App.xaml.cs 中创建的 rootFrame
,因此处理后退按钮的代码将不起作用。要解决此问题,您可以在 DismissExtendedSplash
方法中使用 Window.Current.Content as Frame
来获取 rootFrame
,如下所示:
private async void DismissExtendedSplash()
{
await Task.Delay(TimeSpan.FromSeconds(3));
// set your desired delay
//rootFrame = new Frame();
//MainPage mainPage = new MainPage();
//rootFrame.Content = mainPage;
//Window.Current.Content = rootFrame;
//rootFrame.Navigate(typeof(MainPage)); // call MainPage
((Window.Current.Content) as Frame).Navigate(typeof(MainPage));
}