C#WPF WebBrowsers


WPFでウェブブラウザ機能を使うときにはWebBrowserコントロールを使う。ちょっといじくれば、ほぼこれで事足りる。Chromiumベースで行きたい場合は、EO.WebBrowserが良さそう、という話。

csharpwpf_webbrowsers_full

左から、標準WebBrowserコントロールCefSharpEO.WebBrowser

標準WebBrowserコントロール(IE11ベース)

デフォルトだと無駄にJavaScriptのエラーを吐くしIE7相当なので、JavaScriptのエラーのポップアップを抑止してバージョンを最新にしてあげると、使いやすくなる。

CefSharpのWebBrowser(Chromiumベース Ver53)

一見良さそうに見えるんだけど、日本語入力ができない。なんか、Google Chromeもちょくちょくそんな話があったような。あと、たまに前のページの表示が残ることがある。イベントの処理もどうもおかしい気もする。

EO.WebBrowser(Chromiumベース Ver49)

日本語も入力できるし、表示の残りも無い。ただし、2016年12月1日現在、Google ChromeはVer54なので、ちょっとだけ古い。継続的にアップデートしてくれると良いんだけど。フリートライアルでは、右下に広告が付く。

Gecko(Firefoxベース)やWebKit(Chromium)のコントロールは他にもあるんだけど、最終アップデートが数年前だったり、Winformsだったり、x86向けだったりが多くて、どうも使いにくい。
Awesomiumは本家のサンプルと、NuGetから取得できるUnoffcial両方とも、日本語のインライン入力ができない。一応日本語は一文字ずつ入力はできる。
WinformsならGeckoFXも良さそう。

ファイル一式

https://github.com/umhr/CSharpWPF_WebBrowsers/

参考

WPFのWebBrowserでJavaScriptのエラーのポップアップを抑止する

ゴリゴリ★コード_C# : WebBrowserのIEバージョンを最新にする。

[C#] WebBrowser コントロールで使われている Internet Explorerを最新のバージョンに変更する

Webブラウザー

C#: WebBrowser vs Gecko vs Awesomium vs OpenWebKitSharp: What To Choose And How to Use – CodeProject

[WPF]Chromium Embedded Framework – ガラクタの軌跡