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

Automatically navigate to a new page after a time in UWP

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

我也试过了

Thread.Sleep(3000); 
NewPage pg2 = new NewPage();
Window.Current.Content = pg2;

但它会立即导航,无需等待 3 秒。

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

您可以尝试使用 DispatcherTimer ,Dispatcher 定时器有滴答事件,将定时器的间隔设置为一秒。

写入如果在 timer_tick 事件中并且当 tickCount 命中 3 时,导航到新页面

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

希望对你有帮助,如果不行请评论

it gives me an error "Object reference not set to an instance of an object.

请避免使用Thread.Sleep(3000),它会阻塞UI线程并使Frame为空。正如 Silent Programmer 提到的,您可以使用 DispatcherTimer 来接近。

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));