WinformフォームにWebブラウザを埋め込むにはどうすればいいですか?
4542 ワード
背景
プロジェクトの中でWinformフォームにウェブページを埋め込む必要があります.マイクロソフトはWebBrowserコントロールを持っていますが、彼女はIEモードで運行しています.互換性がとても悪いので、一周探したらCef Sharpというやつがいます.
Cef Sharpの主な特徴サポート.NET Frame ebook 4.5.2+ Winform対応、WPF Chromiumカーネルに基づく は、Javascript相互操作をサポートする . BSDビジネスソース、アドレスhttps://github.com/cefsharp/CefSharp クイック入門
注:筆者の環境はVisual Studio 2019です.ウインドウformプロジェクトを新規作成します. は、Nugetパケットマネージャを開く. CefSharp.Win Formsを検索します.現在の最新バージョンは81.xで、インストールをクリックしてください. コンパイル項目には、以下のエラーが発生します.
Cef Sharp.Comon is unable to proceed as your current Platform is‘AnyCPU’.To target AnyCPU please readhttps://github.com/cefsharp/CefSharp/issues/1714. Alternative ely change your Platform to x 86 or x 64 and the relevant files will be copied atootmatially.For details on change your project s Platform seehttps://docs.microsoft.com/en-gb/visualstudio/ide/how-to-configre-project-to-plotems?view=vs-2017
これはコンパイル時にデフォルトで使用するAnyCPUのオプションであり、公式にも異なる解決策が与えられています.プロジェクトファイルをテキストツールで開き、最初のPropertyGroupノードを見つけ、サブノードを追加します.true App.Configを修正し、probingノードを追加し、修正した後、以下の通りです. ProgramのMain関数は、以下のように修正されました. 最後にFormの中にブラウザのコントロールを埋め込むだけでいいです.
プロジェクトの中でWinformフォームにウェブページを埋め込む必要があります.マイクロソフトはWebBrowserコントロールを持っていますが、彼女はIEモードで運行しています.互換性がとても悪いので、一周探したらCef Sharpというやつがいます.
Cef Sharpの主な特徴
注:筆者の環境はVisual Studio 2019です.
Cef Sharp.Comon is unable to proceed as your current Platform is‘AnyCPU’.To target AnyCPU please readhttps://github.com/cefsharp/CefSharp/issues/1714. Alternative ely change your Platform to x 86 or x 64 and the relevant files will be copied atootmatially.For details on change your project s Platform seehttps://docs.microsoft.com/en-gb/visualstudio/ide/how-to-configre-project-to-plotems?view=vs-2017
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="x86"/>
assemblyBinding>
runtime>
configuration>
static void Main()
{
var settings = new CefSettings();
settings.BrowserSubprocessPath =System.IO.Path.GetFullPath(@"x86\CefSharp.BrowserSubprocess.exe");
Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public Form1()
{
InitializeComponent();
ChromiumWebBrowser browser = new ChromiumWebBrowser("http://www.bigname65.com");
browser.Dock = DockStyle.Fill;
this.Controls.Add(browser);
}