.NET 3.5アプリケーション内にWebブラウザーが必要であり、デフォルトのWebブラウザーを使用したくありません(バグがあり、遅く感じるため)。クリス・キャバナのクロムを試してみましたが、機能させることができませんでした...代わりに使いやすいものはありますか?コンピューター上で非常にシンプルで軽いものを探しています。それが重要な場合、ウェブストアのフロントをホストします。
UPDATE:5年後、再び必要性が生じました。当時、私は Awesomium を使用してプログラムにWebブラウザーを表示していましたが、それがどうなったかは覚えていませんが、実際に苦痛だったことも思い出せません。
しかし今日、私は再びそれを使いたかったのですが、コードは閉じられていて、現在は商用です。ハードウェアを試してみましたが、コードを変更して望みどおりに動作させることができなかったため、 [〜#〜] cef [〜#〜] および CefSharp 、コードを見ることができるため、作業が非常に簡単になり、ブードゥーが少なくなりました(ffs、awesomiumはコードを難読化するため、間違っていることを理解できませんでした)。
基本的にAwesomiumは、2900ドルを支払う必要があり、オフスクリーンレンダリングを必要としない場合はクールですが、CEFは非常に強力であり、ニーズに合わせてコードを変更できます。
PS。 CefGlueを5分間試してみましたが、すぐには機能しなかったため、すぐに動作するCefSharpに移行しました。これは、競合する2つのオープンソースフレームワークのすばらしい恐ろしいことです。
私の新しいプロジェクトをチェックアウトしてください: https://github.com/chillitom/CefSharp
これにより、Chromium Embedded Frameworkが.Net/C#になります。ソース、バイナリ、および例については、Githubページを参照してください。
特徴:
まだアルファ版の段階にあるため、すべてのフィードバックに感謝します。
DotNetBrowser ライブラリをご覧ください。 ChromiumベースのWPFおよびWinFormsブラウザーコントロールを提供します。これらのコントロールは、.NETアプリケーションに簡単に組み込むことができます。 HTML5、CSS3、JavaScriptを含むすべての最新のWeb標準をサポートしています。レンダリングされたページは、Google Chromeとまったく同じように見えます。
ライブラリはChromiumのマルチプロセスアーキテクチャを継承します。各Webページは個別のChromiumプロセスでレンダリングされ、プラグインがクラッシュしたり、Webページでその他の予期しないエラーが発生した後でもアプリケーションは動作し続けます。
DotNetBrowserが提供するその他の便利な機能を次に示します。ロードイベントのリッスン、ネットワークアクティビティの処理、プロキシの構成、ユーザーアクションのシミュレート、Cookieの操作、DOMへのアクセスと変更、DOMイベントのリッスン、.NETからのJavaScriptの呼び出しが可能ですまた、その逆に、WebページでWebカメラとマイクを使用し、WebRTCベースの通信を設定し、 more にします。
詳細については、 APIリファレンス をご覧ください。
以下のコードスニペットは、BrowserViewを作成し、それをフォームに埋め込み、URLをロードする方法を示しています。
using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;
namespace WinForms.DotNetBrowser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
BrowserView browserView = new WinFormsBrowserView();
Controls.Add((Control) browserView);
browserView.Browser.LoadURL("http://www.youtube.com");
}
}
}
上記の例を実行すると、次の出力が得られます。
ライブラリは商用です。商用ライセンスには、さまざまなチームサイズのサポートパッケージが含まれています。ライブラリのソースコードを購入することもできます。
独自のページに加えて、コンポーネントはVisual Studio Marketplaceで NuGetパッケージ および VSIXパッケージ として利用できます。
Windowsフォームを使用している場合、組み込みのWebBrowserコントロールを使用すると簡単です。 WPFも使用している場合は、WPFのWebBrowserコントロールを使用しても問題ありません。ただし、WPFとWinFormsの動作は異なります。
WPFでは、各ピクセルはWinFormsとは異なる方法でレンダリングされます。このメソッドを使用して、WebBrowserの上部のコンテンツコントロールを表示できます。
http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/
ただし、カスタムウィンドウを作成して透明ウィンドウ上のWebBrowserコントロールを表示する場合、WebBrowserコントロールも表示されません。いくつかの回避策がありますが、それらのほとんどは複雑です。地獄、WinFormsの背後に偽のWPF UIを描画することさえ推奨されました。不十分な結合コードとより多くのスパゲッティ。
私はこれを一日中試してきました。これらはすべて私がこれについて集めたリソースです。次のタスクは、それらをコンパイルして、物事を理解することです。これはあなたを私と同じ船に乗せます。
WPF WebBrowser(3.5 SP1)常に手前-WPFでHTMLを表示するためのその他の提案
http://blogs.msdn.com/b/changov/archive/2009/01/19/webbrowser-control-on-transparent-wpf-window.aspx
http://msdn.Microsoft.com/en-us/library/ms742522.aspx
現在、私はWebBrowserコントロールをあきらめ、Awesomiumプロジェクトに取り組んでいます。コードがさまざまな.NETバージョンに分散しているため、機能させようとするのは別の面倒です。運が良ければ、ここで共有してください。
また、このプロジェクトを見て、Webブラウザーのコントロールを使いやすくすることもできます。
http://www.khrona.com/products/awesomium/
繰り返しになりますが、WinFormsにはWebBrowserコントロールに問題はなく、WPFには無数のコントロールがあり、MSはすぐに修正することに熱心ではありません。
そのような多くの選択肢があるかどうかはわかりませんが、 http://webkitdotnet.sourceforge.net/ は1つです。ただし、WPFのコントロールではなくWinFormsのコントロールだと思うので、動作させるにはフープを少しジャンプする必要があるかもしれません。
Gecko WebエンジンをCOMオブジェクトとして埋め込み、標準の.NETコントロールとして使用できると思います。 (FirefoxはGeckoを使用します)
このリンクを試してください: https://developer.mozilla.org/en/Gecko
http://www.syncfusion.com/faq/windowsforms/faq_c100c.aspx でこの主題に関するFAQのコレクションを見つけました。
しかし、私は自分で試したことはありません。
https://bitbucket.org/chromiumembedded/cef/src/master/ プロジェクトを参照してください。このプロジェクトは、さまざまなUIフレームワークにChromium Browser(WebKit)を埋め込むためのフレームワークを提供します。
.NET/Mono実装へのリンクがあります https://bitbucket.org/xilium/xilium.cefglue