Microsoft Edgeを搭載した新しいWindows 10が到着しました。質問したいのですが、どのようにWebブラウザコントロールに追加できますか?実際のWebブラウザーコントロールではJavaScriptとCSS3が許可されていないため、必要です。
また、Chrome browser with project WebKit and Awesomiumを追加しましたが、ログイン資格情報を覚えていませんでした(アプリに必要です)。残念ながらI.E.を使用する必要があります。
2018年5月の更新:最終的にMicrosoftは簡単になりました。 https://blogs.windows.com/msedgedev/2018/05/09/modern-webview-winforms-wpf-apps/
現時点では、新しいコントロールはWindows Community Toolkit 3.0に含まれており、Toolkit.Win32.UI.Controls.dllに含まれています。手動で参照を追加する必要がある場合があります。
======誰かがこれについて言及したかったので、webbrowserコントロールが更新されるようには見えないので、これを追加します。
代わりにWebViewコントロールを使用してください。これは、EdgeHTMLレンダリングエンジンを使用します。これはWindowPresentationレイヤーの一部です しかし、WinFormsおよびおそらく他のアプリからリンクすることは可能です。 UWPアプリに変換する必要があります
import Windows.UI.Xaml.Controls.WebView
サンプルコード: https://code.msdn.Microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7
WebBrowserをWebViewにまだ置き換えていませんが、インターフェイスはかなり馴染みがあります。
残念ながら、サードパーティのアドオンを使用せずにMS webbrowserコントロールでEdgeを使用する方法は現在ないようです。 dword:00002ee1をFEATURE_BROWSER_EMULATIONに追加する提案された「ソリューション」により、WebブラウザはEdge/12.9200_AGENTをUSER_AGENTとして(誤って)報告しますが、実際にはTridentエンジンを使用してWebコンテンツをレンダリングします。そのため、MicrosoftはWebブラウザーコントロールでEdgeをサポートする予定でしたが、終了せず、対応するエミュレーションキーを取り出すのを忘れていたようです。これを確認するには、 http://html5test.com/ を参照します。webbrowserは342〜347ポイント(IE11と同じ)のスコアを制御し、Edgeは397ポイントを獲得します。
[〜#〜] update [〜#〜]@MartinKasztantowiczの回答に記載されているように、現在(16年2月中旬)には、 real Edgeレンダリングエンジンをロードする方法。以下は、コントロールを新しいユーザーエージェントを報告するに設定しますが、レンダリングに古いエンジンを使用するに設定します。それにもかかわらず、それは例えば非推奨のIEハッキング。
ブラウザのバージョンSystem.Windows.Forms.WebBrowser
は、レジストリキーによって制御されますアプリケーションごと。ユーザーがWindows 10を使用している場合、コントロールに次のことを伝えることができます。 負荷 fake次のキーを追加してエッジ:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "Example.exe"=dword:00002ee1
それぞれ[HKEY_CURRENT_USER\...]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "Example.exe"=dword:00002ee1
詳細と値については、対応する Microsoft Documentation を確認してください
私はちょうどテストし、次の結果を得ました... Windows 10も報告する値があるかどうかわからない:
誰もがWindows APIライブラリを忘れましたか?任意のウィンドウを埋め込むには、単に MoveWindow と SetParent の組み合わせが必要です。タイトルバーを非表示にするには SetWindowLong を使用します。また、ウィンドウの周囲の他の部分(アドレスバーなど)を非表示にする必要がある場合は HwndHost を簡単に使用できます。
メモ帳を埋め込むC++の例:
HWND Window = FindWindow("Notepad", "Untitled - Notepad");
if (Window != nullptr)
{
SetParent(Window, hwnd);
SetWindowPos(Window, nullptr, 0, 0, 0, 0, SWP_NOSIZE);
RedrawWindow(Window, nullptr, nullptr, RDW_INVALIDATE);
ShowWindow(Window, SW_SHOW);
}
誤解しないでください、それはハックですが、動作します。
とにかく、マイクロソフトは そのような機能を今すぐ
埋め込みWebKitエンジンを使用するJavaFXを使用します。または、.NETで立ち往生している場合 https://www.teamdev.com/dotnetbrowser