Edited at

WPFアプリケーション上のWebBrowserでreactjs等が動かない場合の対処

More than 1 year has passed since last update.


理由

内部で使用されているIEのエンジンが古い


対処方法


Chromeを使用するようにする(推奨)

the open source version of Google Chrome

https://cefsharp.github.io/

これを使用することで何でもありな状態にもっていけます。

(IEとかWindowsのバージョンとか気にしなくてよくなる)


meta情報をWebPage側に追加する

<meta http-equiv="X-UA-Compatible" content="IE=10">

のようにブラウザーの指定を入れる


<head>

<meta http-equiv="X-UA-Compatible" content="IE=10">
<title>Wpf Webview</title>
</head>


おまけ


スクリプトエラーを抑制したい場合

var axIWebBrowser2 = typeof(WebBrowser).GetProperty("AxIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);

var comObj = axIWebBrowser2.GetValue(webview, null);
comObj.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, comObj, new object[] { true });

InitializeComponent以降のどこかで設定をする

上記でwebviewとなっている所をWebBrowserに付けたNameで置き換える