我正在学习Silverlight 3,在我的所有测试中,当我按下浏览器刷新按钮时,SL应用程序将重新启动。
有什么方法可以避免这种情况吗?
答案 0 :(得分:6)
隔离存储。您可以在那里保存设置和应用程序状态......
http://silverlight.net/learn/learnvideo.aspx?video=65677
我仍然建议您以一种节省足够状态的方式构建您的silverlight应用程序,以便刷新将用户带回有意义的位置。
您可能需要查看Silverlight3导航:http://www.davidpoll.com/?p=88
如果您在刷新应用程序时遇到一个巨大的问题,您可以尝试弹出一个没有菜单栏和工具栏的新浏览器窗口......但是您会遇到弹出窗口阻止程序......
答案 1 :(得分:3)
Afaik你无法取消那样的应用程序重启。您可以做的是处理App.xaml.cs中的Exit事件,并按照上面的建议将设置保存到IsoStore,然后将它们加载到Startup事件(同一个类)中。我想你可以通过将它们带回退出事件期间出现的状态来实现无缝过渡。
答案 2 :(得分:2)
不可能“自动”保持状态。但是,使用navigation framework in SL3可以实现某种程度的状态:当您单击“刷新”时,应用程序将重新启动,但将导航到之前的同一页面。
在Quince中做了类似的事情:http://quince.infragistics.com/#/Search/ViewPattern $ pattern = Action + Links
应用程序读取#之后的URL部分,并使其始终导航到同一个地方。
如果需要保留大量数据,这将无效,因为您需要在URL中保持状态。但是,具有启用深层链接的良好副作用。