导航时,Silverlight NavigationFramework不会更改地址栏(不显示主题标签)

时间:2011-06-13 04:34:05

标签: c# silverlight silverlight-4.0

我使用的是Navigation框架,基本上有一个用于导航的框架。 我试过玩mainFrame.JournalOwnership因为我认为可能会改变它可能与此相关但没有任何改变。

由于导航相关的类结构非常小,我在这里有点困惑,因为我无法想到其他任何我可以改变以使导航工作。

我没有使用导航模板,如果有人想知道的话,我会使用免费样式,就像在这个视频教程中http://www.silverlight.net/learn/videos/all/navigation-framework/一样。

提前致谢。真的很挣扎。请帮忙

我试图通过仅使用我的主机页面并调用简单的navigatate来清空测试页面来重现另一个解决方案中的错误,并且它运行正常,所以我现在有了新的问题。

也许有一种方法可以让我的SL页面HTML禁用由导航框架设置的哈希标签?

编辑:我已经测试过将我的工作测试XAP放在我的html页面而不是我的整个应用程序中,但是它没有更新此页面上的主题标签。所以现在很明显html页面出了问题,可能是什么呢?

2 个答案:

答案 0 :(得分:0)

设置JournalOwnership = JournalOwnership.OwnsJournal的行为告诉SL导航历史记录在其他地方维护。换句话说,不再使用用于跟踪历史记录的次要URL更改。记住在SL导航应用程序中导航框架不会移出页面,但它会更新URI书签#以维持状态,就像AJAX维护历史记录一样。如果你的SL应用程序确实“离开了页面/ URI”,那么你的应用程序必须完全重新加载。无论您是使用导航模板还是现在,它都按规定工作。更改“框架”实际上只是加载UserControl类型并将内容放入现有SL控件的区域。

答案 1 :(得分:0)

终于找到了问题所在。 原来这里的关键是silverlight用来使用这个操作的iframe, 在我将以下代码添加到我的aspx页面后,它开始像魔术一样工作。

<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>

如此处所述:http://msdn.microsoft.com/en-us/library/cc838245(VS.95).aspx