注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

WPF中WebBrowser相应鼠标事件  

2010-12-10 19:08:33|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

WPF的WebBrowser控件相应的属性很少,而且功能也不强大。虽然在说明上有很多事件可以用,但是加载了网页之后你会看到完全没有办法相应这个事件。相比较而言,WinForm中提供的WebBrowser就要强大的多。这里我为了实现WPF程序里WebBrowser的鼠标事件,用WindowsFormHost套了一个WinForm的WebBrowser,然后通过向Document嵌入js脚本来实现鼠标事件的相应。

界面端主要代码:

<Window x:Class="WpfApplication64.Window1"
    ....
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration">
    <Grid Name="gridMain" >
        <wfi:WindowsFormsHost Name="winFormHost" Opacity = "0">
            <wf:WebBrowser x:Name="webBrowser"/>
        </wfi:WindowsFormsHost>
    </Grid>
</Window>

后台主要代码:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    webBrowser.Navigating += new WebBrowserNavigatingEventHandler(webBrowser_Navigating);
    webBrowser.Navigate("http://zwkufo.blog.163.com");
    SHDocVw.WebBrowser wb = webBrowser.ActiveXInstance as SHDocVw.WebBrowser;    //SHDocVw需要添加引用:COM->Microsoft Internet Controls
    wb.NavigateComplete2 += new SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);
}

private void webBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    if (e.Url.ToString().ToLower().Trim('/') == "cmd://onmousedown")    //这里的“cmd://onmousedown”随你所愿,可自定义
    {
        System.Windows.MessageBox.Show("哈哈哈哈哈");
        e.Cancel = true;
    }
}
private void wb_NavigateComplete2(object pDisp, ref object URL)
{
    mshtml.IHTMLDocument2 doc = (this.webBrowser.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.IHTMLDocument2;    //mshtml需要添加引用:.NET->Microsoft.mshtml
    doc.parentWindow.execScript("document.onmousedown=function(e) { window.location='cmd://onmousedown'}", "javascript");
}

这里只是提供一个可能的方案,不一定唯一,有更好的欢迎共享哈·~

  评论这张
 
阅读(2555)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017