设置使用IE的版本

    public static class Extensions{#region  设置WebBroswer 使用IE版本public static void SetWebBrowserFeatures(int ieVersion){// don't change the registry if running in-proc inside Visual Studio  if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)return;//获取程序及名称  var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);//得到浏览器的模式的值  UInt32 ieMode = GeoEmulationModee(ieVersion);var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";//设置浏览器对应用程序(appName)以什么模式(ieMode)运行  Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",appName, ieMode, RegistryValueKind.DWord);// enable the features which are "On" for the full Internet Explorer browser              Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",appName, 1, RegistryValueKind.DWord);}/// <summary>  /// 获取浏览器的版本  /// </summary>  /// <returns></returns>  static int GetBrowserVersion(){int browserVersion = 0;using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",RegistryKeyPermissionCheck.ReadSubTree,System.Security.AccessControl.RegistryRights.QueryValues)){var version = ieKey.GetValue("svcVersion");if (null == version){version = ieKey.GetValue("Version");if (null == version){System.Windows.MessageBox.Show("只支持IE浏览器");}}int.TryParse(version.ToString().Split('.')[0], out browserVersion);}//如果小于7  if (browserVersion < 7){System.Windows.MessageBox.Show("不支持的浏览器版本!");}return browserVersion;}/// <summary>  /// 通过版本得到浏览器模式的值  /// </summary>  /// <param name="browserVersion"></param>  /// <returns></returns>  static UInt32 GeoEmulationModee(int browserVersion){UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.   switch (browserVersion){case 7:mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.   break;case 8:mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.   break;case 9:mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.                      break;case 10:mode = 10000; // Internet Explorer 10.  break;case 11:mode = 11000; // Internet Explorer 11  break;}return mode;}#endregion}

屏蔽脚本错误弹窗

使用的是System.Windows.Controls.WebBrowser时使用如下代码

        private void Browser_Navigated(object sender, NavigationEventArgs e){var fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);if (fiComWebBrowser == null)return;object objComWebBrowser = fiComWebBrowser.GetValue(browser);if (objComWebBrowser == null)return;objComWebBrowser.GetType().InvokeMember("Silent", System.Reflection.BindingFlags.SetProperty, null, objComWebBrowser, new object[] { true });}

使用的是 System.Windows.Forms.WebBrowser时只需将WebBrowser的ScriptErrorsSuppressed设置为true

            browser.ScriptErrorsSuppressed = true;

处理弹出新窗口

WPF中的WebBrowser 详情见监听WPF的WebBrowser控件弹出新窗口的事件

WinFrom中的WebBrowser

通过NewWindow事件加以处理,代码如下:

 private void InnerBrowser_NewWindow(object sender, System.ComponentModel.CancelEventArgs e){e.Cancel = true;try{InnerBrowser.Navigate(InnerBrowser.StatusText);}catch (Exception ex){}}

[代码下载地址](https://download.csdn.net/download/sanyuni/10729884)

WPF中使用浏览器控件WebBrowser相关推荐

  1. 在WPF中使用WinForm控件方法

    在WPF中使用WinForm控件方法 原文:在WPF中使用WinForm控件方法 1.      首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,Syste ...

  2. 如何在wpf中使用winform控件或者winform的自定义控件

    前言 在wpf中使用winform控件或者winform的自定义控件 一.添加引用 WindowsFormsIntegration.dll System.Windows.Forms.dll 提示:这两 ...

  3. C# .NET 6.0已经取消了Framework 4.8的WebBrowser控件,几款NuGet中的浏览器控件介绍

    即使在C# .NET 6.0..NET 7.0在选择工具箱项COM组件添加Microsoft Web Browser,工具箱也没有WebBrowser控件. WebBrowser控件: WebBrow ...

  4. 如何在WPF中使用Winform控件

    要在WPF中使用WInform组件,必须将WInform组件放在宿主WindowsFormsHost中. WindowsFormsHost是WPF的一个控件,它允许在WPF应用程序中托管Windows ...

  5. 如何在WPF中调用Winform控件

    功能实现主要分三步: 1.添加两个引用:WindowsFormsIntegration.dll (负责整合WPF和Windows).System.Windows.Forms. 2.在 XAML文件中添 ...

  6. WPF中使用Winform控件

    在项目中遇到使用WPF做上位机,引用Winform控件,特此做一下总结: 1.在设计界面添加: xmlns:wf="clr-namespace:System.Windows.Forms;as ...

  7. 【柏拉图】在WPF中利用DevExpress控件进行柏拉图展示

    dx控件版本为15.2 因为17.2在win7系统中可能存在报错 有知道原因的大佬烦请告知一下 <Grid Grid.Column="1"><dxc:ChartC ...

  8. 如何在WPF中调用C#控件库(HexEdit)

    1 编写一个Hex Edit控件,使用VS2010建立一个类控件库,分别增加两个类文件,一个命名为HexEdit.cs, 一个命名为TextEditControl.cs,具体内容如下所示: 1)Hex ...

  9. WPF中使用InteractiveDataDisplay控件画图

    在网址GitHub下载InteractiveDataDisplay 1 SyncGraphsSample <Window x:Class="SyncGraphsSample.MainW ...

最新文章

  1. C# 值类型与引用类型
  2. 限制系统扩展能力的瓶颈有哪些?
  3. sqlserver存储过程sp_send_dbmail邮件(html)实际应用
  4. linux中的httpd源码安装方法
  5. android手机短信拦截器,垃圾短信退订套路深 手机上装拦截软件是可行方法
  6. MIPS 通用寄存器
  7. 配置Apache Basic和Digest认证
  8. 【定时同步系列4】QPSK调制+OM定时(FFT实现及频域补偿)+信号分段处理+误码率曲线之MATLAB仿真(复信号模型)
  9. Node.js文件操作二
  10. java内存管理之内存模型
  11. mysql密码正确却提示错误,不使用密码反而能登录
  12. 【PHP学习】—get请求传递参数(五)
  13. ubuntu 一张网卡绑定多个ip
  14. CSDN极客头条使用指南
  15. html网页显示时中文乱码
  16. PHP + AJAX实现幸运转盘抽奖
  17. Luogu3307:[SDOI2013]项链
  18. 喝酒骑行电瓶车属于违法或者犯罪吗?
  19. ssm+bootsrap人力资源考勤系统-JAVA【数据库设计、源码、开题报告】
  20. 迪拜要破产 经济危机第二波来啦

热门文章

  1. 四种方式搭建文件服务器
  2. 夺命雷公狗—玩转SEO---62---TF-IDF核心算法与运用
  3. 夺命雷公狗—玩转SEO---33---DEDE网站安全
  4. docker如何配置加速器
  5. Part4:RPA是什么
  6. 人类思维演变历史的臆测
  7. 2020云栖大会百城汇·广州站 云原生专场全程回顾
  8. navicat for sql错误1171
  9. 5.6 使用描边面板制作动感心电图 [Illustrator CC教程]
  10. CentOS7之开发环境搭建