Веб-браузер в WPF не может отображать страницу, если мышь не движется - PullRequest
0 голосов
/ 24 декабря 2009

Веб-браузер в WPF не может отображать страницу, если мышь не движется.

Эта ошибка не может быть воспроизведена в моем демонстрационном проекте, и я не знаю, как ее исправить. Я попробовал:

  • вызов WindowsFormsHost.UpdateLayout. (Failed)
  • вызовите дочерний элемент WindowsFormsHost, элемент управления WebBrowser. вызовите WebBrowser.Update или WebBrowser.Refresh. (Failed)
  • вызов WindowsFormsHost.InvalidateVisual () (Ошибка)

Есть ли другое решение?


Я даже симулировал движение мыши так:


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

это снова не удалось.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2009

Для того, чтобы имитировать реальные события мыши, вы можете использовать следующую функцию через PInvoke, ее системные API для имитации событий мыши, это будет работать лучше, чем AutomationElement.

SendInput

0 голосов
/ 25 декабря 2009

Я наконец исправил эту ошибку через:

  1. перемещен код init WebBrowser в метод, который является последним методом в событии Window_Loaded.
  2. с использованием BeginInvoke и Thread.Sleep (500) перед инициатором WebBrowsers.

Мы протестировали его на WinXp и Win7, он хорошо работает.

0 голосов
/ 24 декабря 2009

У меня есть три вопроса:

  • Это происходит после перезагрузки?
  • У вас есть AllowsTransparency="True" для главного окна?
  • Какая у вас ОС?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...