将 Devexpress Ribbonform 与 Cefsharp 浏览器一起使用,将窗口大小调整为更小的尺寸

Using Devexpress Ribbonform With Cefsharp Browser Resizes The Window To Smaller Size

提问人:xhammer 提问时间:11/8/2023 最后编辑:xhammer 更新时间:11/8/2023 访问量:61

问:

我最近使用 devexpress winforms 控件创建了一个简单的功能区窗体应用程序。只需查看图像即可了解正在发生的事情。每次调用 cef.initialize 时,窗口都会调整大小并变小。在未添加 chromium 浏览器的情况下,这是屏幕:

Main screen without any browser

当我向它添加浏览器组件的那一刻,它就是这样:

When I click Start button the window resizes and become smaller

两张图片可能看起来相同,但第二张图片是第一张图片的 40%。

代码非常简单:

Try
Dim cef1 As New ChromiumWebBrowser
cef1.Dock = DockStyle.Fill
XtraTabPage2.Controls.Add(cef1)
cef1.LoadUrl("http://google.com")
Catch ex As Exception
MsgBox(ex.Message)
End Try

我什至尝试了以下设置,但没有任何反应:

Dim cefset As New CefSettings
cefset.DisableGpuAcceleration()
cefset.WindowlessRenderingEnabled = True
Cef.Initialize(cefset)
ChromiumWebBrowser1.LoadUrl("http://google.com")

我尝试谷歌搜索,但没有任何结果。Devexpress 团队说要问 Cefsharp 开发团队,但我想我会先在这里尝试。对可能发生的事情有任何想法吗?

问候

.NET Winforms Chromium CefSharp 嵌入式浏览器

评论

0赞 xhammer 11/8/2023
不知道为什么图像仍然没有显示。尝试粘贴和上传,仍然一无所获。
1赞 Jimi 11/8/2023
确保你的应用从一开始就是 DpiAware
0赞 xhammer 11/8/2023
@jimi是的,做到了。将 DPIaware 设置为监视 V2 即可完成工作。非常感谢。
0赞 Jimi 11/8/2023
这取决于你面向的 .NET 版本。你可能有一个 .NET Framework 应用,一个 .NET 5+ 应用已经是 DpiAware。阅读此处:Windows 窗体中的高 DPI 支持,并在此处查看相关的 SO 答案:如何配置应用程序以在具有高 DPI 设置(例如 150%)的计算机上正确运行?。如果面向 .NET Framework 4.7.1+,请使用 设置 DpiAwareness 模式app.configPerMonitorV2
1赞 Jimi 11/8/2023
此外,尝试以 100% 的规模设计您的应用程序,直到您掌握它的窍门。VS 会在您不这样做时发出警告

答:

0赞 xhammer 11/8/2023 #1

正如 Jimi 在评论中推荐的那样,我将我的 DPIaware 设置为 PerMonitor (V2),它运行良好。