public partial class TBForm : Form
{
private readonly ChromiumWebBrowser browser;
public TBForm()
{
InitializeComponent();
browser = new ChromiumWebBrowser("www.baidu.com")
{
Dock = DockStyle.Fill,
};
this.Controls.Add(browser);
}
}
我得到了这个结果
CefSharp.WinForms “Dock =DockStyle.Fill”没有效果,黑边。
如何让ChromiumWebBrowser填写TBForm?
您是否尝试过使用 CefCommandLineArgs 禁用 GPU 引擎?
当您声明时:
CefSettings settings = new CefSettings();
初始化之前:
Cef.Initialize(settings);
尝试添加下一行代码:
settings.CefCommandLineArgs.Add("disable-gpu", "1");
我的经验是这是由于使用较高的 DPI 设置造成的。我在应用程序的入口点使用了推荐的辅助方法:
Cef.EnableHighDPISupport()
请参阅此处了解更多详情: https://github.com/cefsharp/CefSharp/wiki/General-Usage#high-dpi-displayssupport
当显示设置为 125% 时(但设置为 100% 时则不会),我在 Windows 10 上的 .Net 8.0 Core Winforms 中看到了此问题。我在 Windows 11 上根本没有看到它。我的修复方法是删除我的 app.manifest,然后在 Visual Studio 中重新创建它,并取消注释
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
新 app.manifest 中的部分。