WPF WebBrowser鼠标事件不按预期工作

4

我在WPF页面中有一个WebBrowser对象,希望在用户与页面交互时做一些事情。我最初尝试使用与WebBrowser对象相关的事件,但它们似乎没有触发。以下是我代码尝试做的简化示例:

webBrowser.MouseDown += new MouseButtonEventHandler(webBrowser_MouseDown);

事件处理程序如下:

void webBrowser_MouseDown(object sender, MouseButtonEventArgs e)
{
  System.Windows.MessageBox.Show("Pressed");
}

然而,当我运行该页面并在WebBrowser中单击时,没有任何消息框被显示。

抱歉,最初我提到的是System.Controls WebBrowser而不是Forms浏览器。

2个回答

8
根据文档WebBrowser控件不支持鼠标事件。您需要使用WebBrowser.Document属性连接处理程序到控件中显示的文档提供的DOM事件。此文章提供了一个示例。

这让我走上了正确的轨道。类似的过程:http://support.microsoft.com/?kbid=312777 - Farthingworth
如果您计划在处理事件时使用浏览器,查看http://www.west-wind.com/weblog/posts/393.aspx也会很有帮助! - Farthingworth
请看我的帖子 (http://stackoverflow.com/questions/30805833/inspect-element-from-my-wpf-webbrowser-using-inspect-elementsie-chrome-fir/30919955#30919955)。我在旧版winforms webbrowser控件(包含在WPF中)和正常的wpf webbrowser控件中遇到了同样的问题。希望对你有所帮助 :) - user254197

4

添加 ms html com 库

当 WebBrowser.LoadCompleted 事件触发时,请尝试以下操作:

mshtml.HTMLDocumentEvents2_Event doc = ((mshtml.HTMLDocumentEvents2_Event)Browser.Document);
doc.onmouseover += new mshtml.HTMLDocumentEvents2_onmouseoverEventHandler(doc_onmouseover);

或者使用其他事件。希望这能帮助到某些人。

刷新页面后,附加的事件将被移除。 - Anand Kishore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接