2010-09-24 61 views
1

我有silverlight导航页面(使用NavigationCacheMode =“必需”)。 当我通常导航到这些页面(通过鼠标点击),页面按预期加载(由于缓存属性,它们只创建一次)。带有Silverlight导航页面的问题+ window.location.hash

但是,我需要更新浏览器地址栏中的网址。 当我通过JavaScript更新这个(“window.location.hash =#...”)地址和页面得到显示,但页面被重新创建 - 这是造成其他问题。

特别是这个问题导致页面在xaml中定义了Prism.regions。所以它会抛出一个错误,抱怨已经注册的区域。

有没有人试过类似的东西? 我不认为有一种方法可以在浏览器不导航的情况下更新地址栏中的网址。请注意,即时通讯尝试更新的网址包含查询字符串参数,该参数并非由Silverlight导航框架直接“知晓”。

我还没有尝试过的最后一招是使用导航框架注册所有独特的Url。

回答

0

我发现了一个黑客。只需在手动更新url时取消frame_navigating事件。效果很好。