2010-02-03 110 views
3

我在WPF页面中有一个WebBrowser对象,并且我试图在用户与页面进行交互时执行某些操作。我试图使用与WebBrowser对象相关的事件,但他们似乎并没有被解雇。下面是我的代码是试图做一个简单的例子:WPF WebBrowser鼠标事件不像预期的那样工作

webBrowser.MouseDown += new MouseButtonEventHandler(webBrowser_MouseDown); 

与事件处理程序为:

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

然而,当我运行页面,点击显示没有消息框的web浏览器内。

道歉,最初我曾提到它是一个System.Controls WebBrowser而不是一个窗体浏览器。

回答

7

控制控制WebBrowser不支持鼠标事件。您需要使用WebBrowser.Document属性将处理程序连接到由控件中显示的文档提供的DOM事件。 This post有一个如何做到这一点的例子。

+0

这让我走上了正轨。类似的过程:http://support.microsoft.com/?kbid=312777 – Farthingworth 2010-02-04 03:30:47

+0

如果您计划使用浏览器,它也对结帐有帮助:http://www.west-wind.com/weblog/posts/393.aspx同时处理事件! – Farthingworth 2010-02-05 02:04:19

+0

看看我的帖子(http://stackoverflow.com/questions/30805833/inspect-element-from-my-wpf-webbrowser-using-inspect-elementsie-chrome-fir/30919955#30919955)我有同样的旧的winforms webbrowser控件(包含在WPF中)和正常的wpf webbrowser控件的问题。希望能帮助到你 :) – user254197 2015-06-18 15:50:47

2

添加MS HTML COM库

一旦WebBrowser.LoadCompleted事件触发试试这个:

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

或使用一些其他事件。

希望这可以帮助别人。

相关问题