我用的是什么:
10个网络浏览器的列表
tabIndex(当前webbrowser的索引)
使用NavigationService.GoBack()访问主页的不同页面。
问题:
每当我使用GoBack()进入主页并导航时,Navigated事件将被触发1次。 一些冲浪后这是一个巨大的性能问题,但我不知道它为什么会发生。
我在OnNavigatedTo做的事情:
如果count!= 10(全局列表,只发生一次)
,请填写webbrowserlist为每个浏览器设置事件(可能是问题,但无法想象为什么)
感谢您的帮助。
答案 0 :(得分:3)
如果我理解您的问题,那么当您在页面之间来回导航时,Web浏览器导航事件会触发越来越多的时间。
如果没有看到代码,我会说问题是每次导航回主页时都订阅了导航事件。你可以通过以下方式避免这种情况:
1)订阅主页面构造函数中的事件,因为它只被调用一次
2)如果您必须订阅OnNavigatedTo事件页面中的事件而不是之前检查:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.NavigationMode != NavigationMode.Back)
{
webbrowser.tap += someFunction;
}
}
如果您需要在每次导航到页面时注册事件而不是以下内容:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
webbrowser.tap -= someFunction;
}