Nic*_*ico 39 c# webkit webbrowser-control windows-10 microsoft-edge
带有Microsoft Edge的新Windows 10已经到货.我想问你,我怎样才能将它添加到我的网页浏览器控件中?我需要它,因为实际的Web浏览器控件不允许JavaScript和CSS3.
我曾经也使用WebKit和Awesomium项目添加Chrome浏览器,但他们不记得登录凭据(我的应用程序需要它们)所以我不得不使用IE浏览器.
Gar*_*rey 26
更新2018年5月:最终微软让它变得简单. 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
Run Code Online (Sandbox Code Playgroud)
示例代码:https://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7
我还没有用WebView替换我的WebBrowser,但界面看起来很熟悉.
小智 24
不幸的是,似乎目前无法在不使用第三方插件的情况下在MS webbrowser控件中使用Edge.虽然建议的"解决方案"将dword:00002ee1添加到FEATURE_BROWSER_EMULATION会导致webbrowser(错误地)将Edge/12.9200_AGENT报告为USER_AGENT,但事实上它仍然使用Trident引擎来呈现Web内容.因此,似乎微软计划在Web浏览器控件中支持Edge,但没有完成,忘记取出相应的Emulation键.您可以通过浏览http://html5test.com/来验证这一点,其中webbrowser控件得分在342到347分之间(与IE11相同),而Edge得分为397分.
Car*_*Dev 14
更新如@MartinKasztantowicz的回答所述,截至目前(2016年2月中旬),没有已知的方法来加载真正的 Edge渲染引擎.以下设置控件以报告新用户代理,但使用旧引擎进行渲染.然而,对于例如说服站点关闭弃用的IE黑客而言,它是有用的.
浏览器版本由注册表项按应用System.Windows.Forms.WebBrowser程序控制.如果您的用户使用的是Windows 10,则可以通过添加以下密钥告诉控件加载假边缘:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"Example.exe"=dword:00002ee1分别为Windows或当前用户:[HKEY_CURRENT_USER\...][HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"Example.exe"=dword:00002ee1有关更多信息和值,请查看相应的Microsoft文档
我刚测试,得到以下结果...不知道是否有任何值也报告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);
}
Run Code Online (Sandbox Code Playgroud)
不要误会我的意思,这很糟糕,但确实有效.
小智 5
对于完整的 Edge Chromium 支持,截至本说明,WebView2 控件似乎是 Microsoft 的最新产品。
https://docs.microsoft.com/en-us/microsoft-edge/webview2/
| 归档时间: |
|
| 查看次数: |
43236 次 |
| 最近记录: |