在UWP中使用一段时间后自动导航到新页面

在UWP中使用一段时间后自动导航到新页面,uwp,uwp-xaml,xamarin.uwp,uwp-navigation,Uwp,Uwp Xaml,Xamarin.uwp,Uwp Navigation,我试图在一段时间后(比如说3秒钟)转换/导航到一个新页面,但没有任何效果。 我尝试了this.Frame.Navigate(typeof(NewPage)),它给我一个错误“对象引用未设置为对象的实例” 我也试过了 Thread.Sleep(3000); NewPage pg2 = new NewPage(); Window.Current.Content = pg2; 但它不需要等待3秒钟就可以立即导航 我在am Xamarin应用程序中也遇到了同样的问题。您可以尝试使用Dispatche

我试图在一段时间后(比如说3秒钟)转换/导航到一个新页面,但没有任何效果。 我尝试了
this.Frame.Navigate(typeof(NewPage)),它给我一个错误“对象引用未设置为对象的实例”

我也试过了

Thread.Sleep(3000); 
NewPage pg2 = new NewPage();
Window.Current.Content = pg2;
但它不需要等待3秒钟就可以立即导航


我在am Xamarin应用程序中也遇到了同样的问题。

您可以尝试使用Dispatchermer,Dispatcher timer有tick事件,请将计时器从间隔设置为1秒

在timer_tick事件中写入,当tickCount达到3时,导航到新页面

注意:您可能需要使用coreDispatcher[如果发生异常]

希望对您有所帮助,如果不起作用,请留言

它给我一个错误“对象引用未设置为对象的实例”

请避免使用
线程。Sleep(3000)
,它将阻塞UI线程并使框架为空。正如沉默的程序员所提到的,您可以使用这种方法

var timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(3) };
timer.Start();
timer.Tick += (s, e) =>
{
    Frame.Navigate(typeof(NewPage));
    timer.Stop();
};

谢谢你的回复。 同时,我解决了我的问题,我使用的代码如下:

await Task.Delay(3000);

Frame navigationFrame = Window.Current.Content as Frame;
navigationFrame.Navigate(typeof(PageToNavigateTo));