栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

怎样在Winform窗体中嵌入Web浏览器

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

怎样在Winform窗体中嵌入Web浏览器

背景

项目当中需要在Winform窗体中嵌入网页,虽然微软自带了WebBrowser控件,但是她是以IE模式运行的,兼容性实在太差,找了一圈发现有个叫CefSharp的家伙还不错,于是就拿来玩了一下。

CefSharp 主要特征
  • 支持.NET Framework 4.5.2+
  • 支持Winform,WPF
  • 基于Chromium内核
  • 支持Javascript互操作
  • BSD商业开源,地址https://github.com/cefsharp/CefSharp
快速入门

注:笔者的环境是Visual Studio 2019.

  • 新建winform项目。
  • 打开Nuget包管理器。
  • 搜索CefSharp.WinForms,可以看到目前最新的版本是81.x, 点击安装。
  • 编译项目,会出现以下错误:

    CefSharp.Common is unable to proceeed as your current Platform is ‘AnyCPU’. To target AnyCPU please read https://github.com/cefsharp/CefSharp/issues/1714. Alternatively change your Platform to x86 or x64 and the relevant files will be copied automatically. For details on changing your projects Platform see https://docs.microsoft.com/en-gb/visualstudio/ide/how-to-configure-projects-to-target-platforms?view=vs-2017

这是因为编译的时候默认使用的AnyCPU选项,官方也给出了不同的解决方案,根据其中一种做了以下修改:

  • 用文本工具打开项目文件,找到第一个PropertyGroup节点,添加子节点:true
  • 修改App.Config,添加probing节点,修改后如下:


     
        
    
    
      
        
      
    

  • 修改Program的Main函数,如下:
    static void Main()
    {
        var settings = new CefSettings();
        settings.BrowserSubprocessPath =System.IO.Path.GetFullPath(@"x86CefSharp.BrowserSubprocess.exe");

        Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
  • 最后在Form里面嵌入浏览器控件即可:
public Form1()
{
    InitializeComponent();

    ChromiumWebBrowser browser = new ChromiumWebBrowser("http://www.bigname65.com");
    browser.Dock = DockStyle.Fill;
    this.Controls.Add(browser);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号