備忘録

備忘録

C#でChromiumを使う(WinForms, WPF)

Ⅰ. はじめに

今の時代 System.Windows.Controls.WebBrowser は以下の理由から使いたくありません。

  • デフォルトの状態ではIE7互換として動く
  • IE11互換で動かすにはレジストリの設定が必要
  • プロキシやUser-Agent等の設定を行うのが面倒、もしくはできない

そこでGoogle ChromeOSS実装であるChromiumを動かす事にします。
使うライブラリはCefSharpです。

CefSharpCEF(Chromium Embedded Framework)の.NETラッパーです。

Ⅱ. WinFormsで使う場合

1. NuGetからパッケージをインストールする
Install-Package CefSharp.WinForms
2. プラットフォームをx86またはx64に変更する

Any CPUでは動作しません。

3. サンプルプログラムを書く
public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();

    var browser = new ChromiumWebBrowser("http://www.ugtop.com/spill.shtml");
    Controls.Add(browser);
    browser.Dock = DockStyle.Fill;
  }
}
4. 実行結果


Ⅲ. WPFで使う場合

1. NuGetからパッケージをインストールする
Install-Package CefSharp.Wpf
2. プラットフォームをx86またはx64に変更する

Any CPUでは動作しません。

3. サンプルプログラムを書く
public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();

    var browser = new ChromiumWebBrowser();
    browser.Address = "http://www.ugtop.com/spill.shtml";
    Content = browser;
      
    // 任意のGrid要素の中に入れるときは
    // grid1.Children.Add(browser);
  }
}
4. 実行結果