[解決済み] WPF/C#でIEではなくChromiumのWebBrowserコントロールを埋め込むためのオプション [終了しました]。
質問
更新情報 2020年に向けて、私は 私の記事をリンク ここでは、基本的な Windows デスクトップ アプリケーションで HTML WebView をホストするためのさまざまなアプローチのメモリ フットプリントを比較しています。
Internet Explorer ベースの WPF WebBrowser コントロールには、次のような問題があります。 キーボードとフォーカスの問題 と メモリリーク問題 . これらの問題に対する代替ソリューションとして、HTML編集を中心としたWPF/C#プロジェクトにおいて、WebBrowserコントロールの代わりにChromiumをホストするための利用可能なオプションを検討中です。同様の質問は 質問 以前、ここで その回答を読み、自分なりに調べてみました。 しかし、以下のオプションのいずれかを実際にプロダクションクオリティのプロジェクトで使用したことのある人たちから、もう少しフィードバックを得たいと考えています。 :
とても適当な感じですが、このプロジェクトがオープンソースでないことと、フルソースが簡単に入手できないことが気に入りません。また、オフスクリーンレンダリングは私たちが本当に依存しているものではないので、私たちのプロジェクトにとっては過剰な機能かもしれません。
Chromium Embedded Framework (CEF)について と CEF用.NETバインディング
これはおそらく、現在利用可能な最良の選択肢です。このプロジェクトは生きているようで、現在Chrome v27と同期しており、活発です。CEF3はChromeのマルチプロセスアーキテクチャを使用しています。また、Adobeはこのプロジェクトに お墨付き .
もともとはIEやFirefoxのHTML5プラグインとして作られたものですが、実はスタンドアローンのActiveXコントロールとしても動作するので、WPFで使えるようにラッピングしてみました。これは
十分なAPI
内部ウェブページとの対話のために (
onmessage, addEventListener/removeEventListener, postMessage
).
私は、Googleが
打ち切る
Chrome Frameですが、ソースはChromiumのリポジトリに残ると思います。最新のChromiumのコードで更新することは難しくないはずで、私たちはこれを完全にコントロールすることができます。
Chromiumベースというわけでもなく、V8エンジンを使っているわけでもないので、あまり選択肢には入らない。
他に私が見落としているような選択肢はないでしょうか?
上記のオプションのいずれかを実際の製品品質のWPFプロジェクトで使用した経験を共有できる人がいれば、非常に感謝します。統合、ライセンス、またはデプロイメントの影響がありましたか?
解決方法は?
Chromiumを埋め込むための最も有名な解決策(CEF、Chrome Frame、Awesomium)はすでにリストアップされています。これ以上重要なプロジェクトはないでしょう。
がまだあります。 ベルケリウム プロジェクト(参照 ベルケリウムシャープ と ベルケリウム・マネージド ) が、古いバージョンの Chromium を使っています。
CEF これは完全にオープンソースで、頻繁に更新されています。最新版のChromiumを埋め込むことができる唯一の選択肢です。現在、Per Lundberg が CEF 3 の移植に積極的に取り組んでいます。 CefSharp というのが、今後のベストな選択だと思います。また、次のようなものもあります。 ザリウム.CefGlue しかし、これはCEFのための低レベルのAPIを提供し、CEFのC APIにバインドしています。一方、CefSharpはCEFのC++APIにバインドします。
CEFを使用している主要なプレーヤーはAdobeだけではありません。 CEFウィキペディアのページ .
関連
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み] Visual Studioの出力ウィンドウに書き込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。