【问题标题】:How to stop loading the Page from its constructor or an event before Loaded如何在加载之前停止从其构造函数或事件加载页面
【发布时间】:2013-12-13 19:29:23
【问题描述】:

我有一个 WPF 浏览器应用程序,它有一个 StartupUri="StartPage.xaml"
在该页面的构造函数中,我正在检查它是否可以
连接到服务器上的数据库。

现在,如果失败,我想停止加载该页面并导航到另一个页面。
问题是 - “当 Page 引发 Loaded 事件时,页面只能获得对其 NavigationService 的引用。” (http://msdn.microsoft.com/en-us/library/ms750478.aspx)
...并且在加载加载时,页面已经“开始显示”,
这意味着如果我从 Loaded 事件导航到另一个页面,它仍会显示第一个页面
(虽然非常简短)在加载第二页之前。

那么,我该如何预防呢?

因为我知道它不应该在建造时提前出现,
但当时的 NavigationService 为空。如果它不是我的应用程序启动时加载的第一个页面,这将不是问题。也许我可以在 App: Application 类(当前为空)中测试连接,然后决定 StartupUri 应该是什么。如果这是一个好方法,请提供一个小例子。 编辑:挖掘机

【问题讨论】:

    标签: c# wpf service navigation xbap


    【解决方案1】:

    您提到的方法 - 将数据库检查放在应用程序的 OnStartup 方法中 - 会起作用。但是,在您进行数据库查找时阻止 UI、预启动将是可怕的 UX。最好先导航到启动页面或启动页面,然后根据需要从那里导航。

    【讨论】:

    • 感谢您的快速回复;这也是一个我没想到自己的好。我会在后台磨几个齿轮的同时让用户看到一些闪亮的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2021-02-18
    • 2018-01-16
    • 2010-10-27
    • 1970-01-01
    相关资源
    最近更新 更多