除非鼠标移动,否则WPF中的Web浏览器无法显示页面

时间:2009-12-24 03:15:18

标签: wpf browser

除非鼠标移动,否则WPF中的Web浏览器无法显示页面。

此错误无法在我的演示项目中重现,我不知道如何修复它。 我试过了:

  • 调用WindowsFormsHost.UpdateLayout。 (失败)
  • 调用WindowsFormsHost的子节点,一个WebBrowser控件。调用WebBrowser.Update或WebBrowser.Refresh。 (失败)
  • 调用WindowsFormsHost.InvalidateVisual()(失败)

还有其他解决方案吗?


我甚至模拟鼠标移动:


AutomationElement element = AutomationElement.FromHandle(winAdHoster.Handle);
ATGTestInput.Input.MoveToAndClick(element);

再次失败。

3 个答案:

答案 0 :(得分:0)

我有树问题:

  • 重启后会发生这种情况吗?
  • 主窗口有AllowsTransparency="True"吗?
  • 你有什么操作系统?

答案 1 :(得分:0)

为了模拟实际的鼠标事件,你可以使用以下函数throgh PInvoke,它的系统api来模拟鼠标事件,这比AutomationElement更好。

SendInput

答案 2 :(得分:0)

我终于通过以下方法修复了这个错误:

  1. 将init WebBrowser代码移动到一个方法,这是Window_Loaded事件中的最后一个方法。
  2. 在init WebBrowsers之前使用BeginInvoke和Thread.Sleep(500)。
  3. 我们在WinXp和Win7上测试过,效果很好。