我有一个silverlight导航应用程序,我在MainPage.aspx加载中加载并初始化了很多东西。
所有页面(视图)都取决于该数据的加载。
但我的用户通常会在桌面上为我的应用添加互联网快捷方式。但链接通常指向一个特定的页面:
http://myServer/MyApp/default.aspx#/TheView
我想强制用户在应用程序启动时转到“默认”视图(并忽略#/ view参数)。
我能做到最好的方式是什么?
答案 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中,当应用程序启动时,您转发页面请求。
但我推荐第一个。