导航应用程序 - 在启动时强制页面

时间:2011-10-07 12:14:02

标签: silverlight silverlight-4.0

我有一个silverlight导航应用程序,我在MainPage.aspx加载中加载并初始化了很多东西。

所有页面(视图)都取决于该数据的加载。

但我的用户通常会在桌面上为我的应用添加互联网快捷方式。但链接通常指向一个特定的页面:

http://myServer/MyApp/default.aspx#/TheView

我想强制用户在应用程序启动时转到“默认”视图(并忽略#/ view参数)。

我能做到最好的方式是什么?

1 个答案:

答案 0 :(得分:1)

我认为“避免”链接不是一个好主意。你应该在没有问题的情况下构建应用程序。

例如,您可以在加载所有内容时从主逻辑发送消息,直到该消息可以禁用相应的UI(在等待数据时)。 Messenger(或Prism中的EventAggregator)是一种发布者 - 订阅者模式,用于实现组件之间的通信,而无需相互引用。如果您还不知道,请查看 MVVMLight Messenger Prism EventAggregator

但如果第一个选项对您不合适,您可以使用Frame控件的 JournalOwnership 属性:

http://msdn.microsoft.com/en-us/library/system.windows.controls.frame.journalownership(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/system.windows.navigation.journalownership(v=vs.95).aspx

OwnsJournal 是您的价值,因为它没有与浏览器日记集合,并且网址保留原始状态,因此您的用户无法为“子页面”添加书签。

您还可以实施自己的日记帐机制。

另一个:),但是如果你跟踪第一页加载(例如在 OnNavigatedTo 页面事件中),并且在第一次请求时手动导航到主页面,那么非常难看的选项。或者在App.xaml.cs中,当应用程序启动时,您转发页面请求。

但我推荐第一个。