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

Posted

技术标签:

【中文标题】在 UWP 中一段时间​​后自动导航到新页面【英文标题】:Automatically navigate to a new page after a time in UWP 【发布时间】:2021-08-23 14:00:54 【问题描述】:

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

我也试过

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

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

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

【问题讨论】:

【参考方案1】:

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

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

var timer = new DispatcherTimer()  Interval = TimeSpan.FromSeconds(3) ;
timer.Start();
timer.Tick += (s, e) =>

    Frame.Navigate(typeof(NewPage));
    timer.Stop();
;

【讨论】:

【参考方案2】:

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

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

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

希望对你有帮助,如果不行请留言

【讨论】:

【参考方案3】:

感谢您的回复。 与此同时,我已经解决了我的问题,我正在使用的代码如下:

await Task.Delay(3000);

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

【讨论】:

以上是关于在 UWP 中一段时间​​后自动导航到新页面的主要内容,如果未能解决你的问题,请参考以下文章

导航到新页面后停止到达路由器向下滚动页面

在 python 中一段时间​​后关闭 tkmessagebox

在uwp仿IOS的页面切换效果

导航页面时是不是所有 UWP 应用都会泄漏内存?

条码扫描后导航到新页面,不返回原始页面

页面之间导航 C# UWP