**DotNetBrowser** 是一个专有的 .NET 库，它提供了一个基于 Chromium 的引擎，可用于加载和显示网页。
 自 2015 年以来，它一直由 TeamDev 开发和支持。

产品功能
----

主要功能如下：

* 加载并显示网页。
* 将基于 Chromium 的浏览器作为  WPF 或 Windows Forms 控件嵌入到 .NET 桌面应用程序中  。
* 处理导航和网络事件。
* 访问已加载网页的文档对象模型。
* 在加载的网页上执行 JavaScript，注入 .NET 对象并从 JavaScript 调用它们

用途
--

DotNetBrowser 的主要用途是将浏览器嵌入到各种 .NET 桌面应用程序中并显示网页。 DotNetBrowser 可以用作无头浏览器。 无头模式也适用于 Linux 和 macOS。

另一个已知的用例是创建基于网络的自动服务终端应用程序 和 Microsoft Office 的 VSTO 插件。

DotNetBrowser 示例存储库 （页面存档备份，存于） 中提供了更多示例和用例。

例子
--

### WPF

**XAML 标记**

```
<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#**

```
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#**

```
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();
 }
}

```

另见
--

* Electron

外部链接
----

* 官方网站
* ,  [2023-02-02], （原始内容存档于2023-05-26）  - DotNetBrowser 支持包含文档和发行说明的网站。
* ,  [2023-02-02], （原始内容存档于2023-01-16）  - 包含使用 DotNetBrowser 的各种示例的存储库。

参考文献
----

1. ↑  .
2. ↑  .
3. ↑ . TeamDev. TeamDev.  [12 March 2021]. （原始内容存档于2021-06-15）.
4. ↑ .  [14 March 2021]. （原始内容存档于2021-06-14）.
5. ↑ .  [14 March 2021]. （原始内容存档于2021-05-19）.
6. ↑ .  [2023-02-02]. （原始内容存档于2021-05-19）.
7. ↑ . DZone.  [2023-02-02]. （原始内容存档于2021-05-19）.
8. ↑ .  [2023-02-02]. （原始内容存档于2021-05-19）.
9. ↑ . 14 June 2018.
10. ↑ .  [2023-02-02]. （原始内容存档于2021-05-19）.
11. ↑ . InfoQ. InfoQ.  [12 March 2021]. （原始内容存档于2021-05-19）.
12. ↑  Mihika Kapoor.. medium.com. 2 July 2016  [17 May 2021]. （原始内容存档于2021-05-17）.
13. ↑ .  [21 May 2021]. （原始内容存档于2021-05-21）.