DotNetBrowser

DotNetBrowser 是一個專有的 .NET 庫，它提供了一個基於 Chromium 的引擎，可用於加載和顯示網頁。

自 2015 年以來，它一直由 TeamDev 開發和支持。

## 產品功能

主要功能如下：

- 加載並顯示網頁。
- 將基於 Chromium 的瀏覽器作為 WPF 或 Windows Forms 控制項嵌入到 .NET 桌面應用程式中。
- 處理導航和網路事件。
- 訪問已加載網頁的文檔對象模型。
- 在加載的網頁上執行 JavaScript，注入 .NET 對象並從 JavaScript 調用它們

## 用途

DotNetBrowser 的主要用途是將瀏覽器嵌入到各種 .NET 桌面應用程式中並顯示網頁。DotNetBrowser 可以用作無頭瀏覽器。無頭模式也適用於 Linux 和 macOS。

另一個已知的用例是創建基於網路的自動服務終端應用程式 和 Microsoft Office 的 VSTO 插件。

DotNetBrowser 示例存儲庫 中提供了更多示例和用例。

## 例子

### WPF

XAML 標記

```XML
<Window x:Class="Sample.Wpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:wpf="clr-namespace:DotNetBrowser.Wpf;assembly=DotNetBrowser.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Closed="MainWindow_OnClosed">
    <Grid>
        <wpf:BrowserView x:Name="browserView"/>
    </Grid>
</Window>
```

C#

```C#
using System;
using System.Windows
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;

namespace Sample.Wpf;

public partial class MainWindow : Window
{
    private readonly IEngine engine;
    private readonly IBrowser browser;
     
    public MainWindow()
    {
        InitializeComponent();
         
        // 创建和初始化 IEngine
        engine = EngineFactory.Create();
         
        // 创建 IBrowser
        browser = engine.CreateBrowser();
        browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        // 初始化 WPF BrowserView 控件
        browserView.InitializeFrom(browser);
    }
     
    private void MainWindow_OnClosed(object sender, EventArgs e)
    {
        browser.Dispose();
        engine.Dispose();
    }
}
```

### Windows Forms

C#

```C#
using System;
using System.Windows.Forms;
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;
using DotNetBrowser.WinForms;

namespace Sample.WinForms;

public partial class Form1 : Form
{
    private readonly IEngine engine;
    private readonly IBrowser browser;
     
    public Form1()
    {
        InitializeComponent();
         
        // 创建和初始化 IEngine
        engine = EngineFactory.Create();
         
        // 创建 Windows Forms BrowserView 控件
        BrowserView browserView = new BrowserView() {
            Dock = DockStyle.Fill
        };
         
        // 创建 IBrowser
        browser = engine.CreateBrowser();
        browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        //  初始化 Windows Forms BrowserView 控件
        browserView.InitializeFrom(browser);
         
        // 将 BrowserView 控件添加到 Form 中
        Controls.Add(browserView);
        Closed += Form1Closed;
    }
     
    private void Form1Closed(object sender, EventArgs e)
    {
        browser.Dispose();
        engine.Dispose();
    }
}
```

## 外部連結

- https://www.teamdev.com/dotnetbrowser
- - DotNetBrowser 支持包含文檔和發行說明的網站。
- - 包含使用 DotNetBrowser 的各種示例的存儲庫。

## 基本資料

- 開發者：TeamDev
- 發行日期：2015年4月6日
- 作業系統：Microsoft Windows, Linux, macOS
- 程式語言：C#, C++
- 類型：軟體框架, 網頁瀏覽器
- 許可協議：專有軟體
- 網站：https://teamdev.com/dotnetbrowser