设置使用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. android Canvas 最基础知识总结
  2. asp.net学习之 数据绑定控件--List数据绑定控件
  3. 设置JAVA环境变量
  4. C++指针初始化总结
  5. Linux的编译器vi之最详细介绍
  6. 想了解Sleuth+zipkin分布式请求链路追踪,来看看这篇文章吧!
  7. 智能指针——auto_ptr
  8. IOS设备唯一标示符的方案比较
  9. Android之webview长按超链接类型获取链接文字及url、长按图片链接类型分别获取图片和链接的url
  10. Acwing 252. 树
  11. js基础——cssText
  12. eclipse常用插件之FindBugs
  13. java实现身份证号码的严格校验!
  14. 「AI产品」产品小姐姐分析抖音背后的计算机视觉技术
  15. Ubuntu20.04安装Mysql(亲测有效,一定要按步骤来)
  16. 基于TransferNet和nlpcc2018知识图谱搭建问答服务
  17. Android RSA加密解密
  18. 多元线性回归matlab实现
  19. LeetCode(871):最低加油次数 Minimum Number of Refueling Stops(Java)
  20. 关于区块链的三个隐喻

热门文章

  1. 斗仙服务器维护礼包,《斗仙》2.730版本更新公告(测试区 2017.6.26)
  2. PPT里对指定三角形的三条边作垂直平分线的VBA代码
  3. SuperPoint学习训练纪录 盘点各种报错解决方法(二)
  4. .NET Core Apollo 配置中心
  5. 20张Python高清数据分析全知识地图,强烈建议保存
  6. Oracle项目管理之Primavera Unifier学习地图(持续更新)
  7. android4.2.2 surfaceflinger,[imx6 ]Android4.4.3--surfaceflinger导致系统起不来,ldb显示问题...
  8. open函数O_CLOEXEC作用
  9. win10下用nginx搭建一个点播服务器支持各类视频格式
  10. WPF去掉边框及设置圆角框