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

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

WebBrowser控件:

WebBrowser控件是.NET Framework中的一个经典浏览器控件,它提供了基本的Web浏览功能。虽然WebBrowser控件在.NET 6.0中已经过时,但仍然可以在一些旧的应用程序中使用。WebBrowser控件支持HTML、CSS和JavaScript,并提供了一些基本的浏览器功能,如导航、前进/后退和页面加载事件。你可以使用NuGet包System.Windows.Forms来添加WebBrowser控件到你的项目中。

在 .NET 6.0、.NET 7.0使用WebBrowser控件的方法:新建一个panel控件,然后添加代码如下

  private void Form1_Load(object sender, EventArgs e)
        {
            // 创建一个WebBrowser控件实例
            WebBrowser webBrowser = new WebBrowser();
            panel1.Controls.Add(webBrowser);
            webBrowser.Dock = DockStyle.Fill;
            // 加载网页
            webBrowser.Navigate("https://www.example.com");

        }

比如百度:

 下面介绍几个NuGet开发的包管理器中常见的强大浏览器控件的例子:

使用WebView2,功能比WebBrowser控件强大

WebView2控件:WebView2是一个由Microsoft提供的浏览器控件,它基于Chromium引擎。它可以在C#应用程序中嵌入和使用,并提供了强大的Web浏览功能。你可以使用WebView2控件在你的应用程序中显示网页内容,并与网页进行交互。WebView2控件支持HTML、CSS和JavaScript,并提供了丰富的API,用于控制和操作网页内容。你可以使用NuGet包Microsoft.Web.WebView2来添加WebView2控件到你的项目中。

以下是一个使用WebView2控件加载网页的示例:

using Microsoft.Web.WebView2.Core;
using Microsoft.Web.WebView2.WinForms;

// 创建一个WebView2控件实例
WebView2 webView = new WebView2();

// 初始化WebView2控件
await webView.EnsureCoreWebView2Async();

// 加载网页
webView.Source = new Uri("https://www.example.com");

 请注意,WebView2控件是.NET 6.0中推荐使用的浏览器控件,因为它基于Chromium引擎,提供了更现代和强大的Web浏览体验。如果你正在开发一个新的应用程序,建议使用WebView2控件来集成浏览器功能。

.NET Framework 4.8 不支持不可用使用 WebView2。WebView2 是一个用于在应用程序中嵌入 Web 内容的控件,它是基于 Chromium 的新一代 WebView 控件。然而,WebView2 是在 .NET 5.0 及更高版本中引入的,因此在 .NET Framework 4.8 中无法使用。

CefSharp控件

CefSharp:CefSharp是一个基于Google Chrome的开源项目,它提供了一个强大的浏览器控件,可以在C#应用程序中嵌入和使用。它支持现代Web技术,如HTML5、CSS3和JavaScript,并提供了丰富的API来控制浏览器的行为。

using CefSharp;
using CefSharp.WinForms;

// 创建一个CefSharp浏览器控件
ChromiumWebBrowser browser = new ChromiumWebBrowser("https://www.example.com");

// 将浏览器控件添加到窗体中
this.Controls.Add(browser);

请注意,Awesomium已经停止维护,并且不再提供官方支持。如果您需要使用最新的Web浏览功能,建议考虑使用其他库,如CefSharp(https://github.com/cefsharp/CefSharp)或WebView2(https://docs.microsoft.com/en )

Awesomium控件(Awesomium.Windows.Forms.WebControl)(使用.NET7.0,安装库后,提示可能不兼容.使用不了。)

Awesomium.Windows.Forms.WebControl是Awesomium的官方组件,它是一个完整的Web浏览器控件,可以直接在Windows窗体应用程序中使用。它提供了一个功能强大的API,可以实现高级的Web浏览功能。

使用Awesomium.Windows.Forms.WebControl,你可以在你的C#应用程序中创建一个完整的Web浏览器,具有类似于主流浏览器的功能。它支持加载和显示Web内容,处理JavaScript和与Web页面进行交互。它还提供了一些高级功能,如支持多个窗口、自定义网络请求、处理Web页面事件等。

Awesomium是一个用于.NET平台的浏览器控件,它提供了强大的Web浏览功能和丰富的API。它支持HTML5、CSS3和JavaScript,并提供了许多有用的功能,如JavaScript与C#之间的互操作性。

using Awesomium.Core;
using Awesomium.Windows.Forms;

// 创建一个Awesomium浏览器控件
WebControl webControl = new WebControl();

// 将浏览器控件添加到窗体中
this.Controls.Add(webControl);
 // 设置WebControl的大小和位置
webControl.Size = new System.Drawing.Size(800, 600);
webControl.Location = new System.Drawing.Point(10, 10);
// 加载网页
webControl.Source = new Uri("https://www.example.com");

Awesomium(Awesomium.NetWrapper.Unofficial)(使用.NET7.0,安装库后,提示可能不兼容)

Awesomium.NetWrapper.Unofficial是一个非官方的Awesomium.NET封装库,它提供了对Awesomium的基本功能的访问。它是一个轻量级的库,适用于那些只需要基本的Web浏览功能的应用程序。它提供了一个简单的API,可以用于加载和显示Web内容,处理JavaScript和与Web页面进行交互。

using System;
using System.Windows.Forms;
using Awesomium.Core;//添加以下命名空间引用
using Awesomium.Windows.Forms;

namespace WinFormWebBrowser
{
    public partial class Form1 : Form
    {
        //在您的WinForm窗体类中,添加一个WebControl控件来显示Web内容。您可以在窗体设计器中拖放一个WebControl控件,或者在代码中手动创建一个。
        private WebControl webControl;

        public Form1()
        {
            InitializeComponent();
            InitializeWebControl();
        }

        private void InitializeWebControl()
        {
            //在窗体的构造函数或Load事件处理程序中,初始化WebControl控件并设置相关属性。
            webControl = new WebControl();
            webControl.Dock = DockStyle.Fill;
            webControl.WebSession = WebCore.CreateWebSession(new WebPreferences());
            Controls.Add(webControl);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webControl.Source = new Uri("https://www.example.com");//加载一个网页
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //最后,不要忘记在您的应用程序退出时释放Awesomium资源。您可以在窗体的Closing事件处理程序中添加以下代码
            WebCore.Shutdown();
        }
    }
}

使用Awesomium.NetWrapper.Unofficial,你可以轻松地在你的C#应用程序中嵌入Web内容,并与Web页面进行交互。它提供了一些基本的功能,如加载URL、执行JavaScript代码、获取Web页面的截图等。它还支持一些高级功能,如自定义网络请求和处理Web页面事件。

这些是在NUGET中常见的一些强大浏览器控件的例子。它们提供了丰富的功能和灵活的API,使开发人员能够轻松地在C#应用程序中嵌入和使用浏览器功能。无论您是构建一个简单的浏览器应用程序还是需要在您的应用程序中嵌入Web浏览器,这些控件都可以满足您的需求。

上面内容用于记录自己的学习与分享,分享让技术更进一步!

技术来源于思想自由、独立思考、辩证分析、逻辑思维与人类自由的创新,来服务于人类生活各种方便,而不是为了用技术打造思想鸿沟围城来制造愚蠢;技术是好的与坏的,好人用技术是更好的,坏人用技术是更坏的。推荐好书:乔治.奥威尔的《1984》、扎米亚京《我们》、阿道司·赫胥黎《美丽新世界》,有多个译本,选择喜欢且好的译本就行了;还有柏拉图的《理想国》、[法]孟德斯鸠的《论法的精神》、哈耶克《通向奴役之路》(港版)(港版翻译较好大陆版本,英语过硬的最好看英文原版),现在网店都有售卖!阅读好书,阅读大部分人未阅读过与课堂没有的书,阅读这片土地没有的知识就能增加一种思辨思维与智慧,才能走出狭隘思维偏见的洞穴!

柏拉图在他的巨著《理想国》的第七卷里写到了洞穴理论阐明:一群从小被囚禁生活在洞穴里人,在洞穴外面的光线照明下,往内看是一片片黑影,往外看是光明的海阔天空,越看越明亮!

见多识广,包容的人更自信、思维更多元,包容好的文化使人更强大,越自信越包容越强大!包容让你用上网络、电话、各种电器、汽车、芯片、铁路、高铁................

猜你喜欢

转载自blog.csdn.net/m0_58015531/article/details/131347731