Windows8 - Metro - WebView - NavigateToString干扰Grid中的滚动

时间:2012-04-25 08:05:23

标签: c# xaml windows-8 windows-runtime winrt-xaml

我在Windows 8 Metro Style应用程序中遇到了这个非常令人不安的错误。

我们有一个由三行组成的网格   - 标题   - 列表视图(包含允许用户水平滚动的块)   - 页脚(包含显示广告的WebView)。

............................................... ...............................
标志
.................................................. ............................

列表显示 水平滚动---------------------->

............................................... ...............................
AD
.................................................. ............................

问题是 - 当我加载广告的内容时(使用NavigateToString,它会加载一些显示广告的javascript),listview中的滚动停止工作(除非您使用滚动条)。我已将错误隔离到这个特定的方法 - 如果我不调用NavigateToString,但仍然包含WebView - 滚动工作。

我已经尝试将Html生成为任务,并在调度程序上调用该方法,但没有运气。

我尝试过一些奇怪的东西,比如使用DispatchtTimer延迟加载广告。它工作..直到调用NavigateToString方法。

奇怪的是 - 该视图包含一个底部应用栏。如果我显示/隐藏此应用栏,滚动突然起作用。 (在执行此特定操作时,可能会以某种方式重新获得ListView的重点)..

有什么建议吗? =)

3 个答案:

答案 0 :(得分:2)

设置IsEnabled = false;在广告控制上。这是Microsoft广告团队目前建议的解决方法。唯一的缺点是用户无法使用该集标签到广告,但我认为这是可以接受的

答案 1 :(得分:0)

不应将WebView放在AppBar中,并且Visibility必须设置为Visible。 我已将WebView的边距设置为较大的负值,以将其隐藏在应用程序之外。

答案 2 :(得分:0)

将navigationCompleted事件添加到webview,并在导航完成事件中将焦点设置为listview。