DotNetBrowser

DotNetBrowser is a proprietary .NET library that provides a Chromium-based engine which can be used to load and display web pages.[2] [3][4] It is developed and supported by TeamDev since 2015.

DotNetBrowser
Developer(s)TeamDev
Stable release
2.10 / 18 November, 2021
Written inC#, C++
Operating systemWindows
TypeFramework, Web browser
LicenseTeamDev.[1]
Websitehttps://www.teamdev.com/dotnetbrowser

Features

Some main features are as follows:

  • Load and display the web page.
  • Embed a Chromium-based browser in a .NET desktop application as a WPF or Windows Forms control.[5]
  • Handle navigation and network events.
  • Access Document Object Model of the loaded web page.
  • Execute JavaScript on the loaded web page, inject .NET objects and call them from JavaScript[6][7][8]

Usage

Primary usage is embedding a browser into various .NET desktop applications and displaying the web pages.[9] DotNetBrowser can also be used as a headless browser.

Another known use-cases are creating web-based kiosk applications[10] and VSTO add-ins for Microsoft Office.[11]

More examples and use-cases are available in the DotNetBrowser Examples repository.

Example

WPF

XAML markup

<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();
             
            // Create and initialize the IEngine
            engine = EngineFactory.Create();
             
            // Create the IBrowser
            browser = engine.CreateBrowser();
            browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
             
            // Initialize the WPF BrowserView control
            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();
             
            // Create and initialize the IEngine
            engine = EngineFactory.Create();
             
            // Create the Windows Forms BrowserView control
            BrowserView browserView = new BrowserView() {
                Dock = DockStyle.Fill
            };
             
            // Create the IBrowser
            browser = engine.CreateBrowser();
            browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
             
            // Initialize the Windows Forms BrowserView control
            browserView.InitializeFrom(browser);
             
            // Add the BrowserView control to the Form
            Controls.Add(browserView);
            Closed += Form1Closed;
        }
         
        private void Form1Closed(object sender, EventArgs e) {
            browser.Dispose();
            engine.Dispose();
        }
    }
}

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.