由于 Chromium 中 Windows 设置中 DPI 的变化导致网页失真
Distortion in webpage due to change in DPI in Windows settings in Chromium
运行 当我将鼠标悬停在 DOM 元素上时,显示设置设置为 125% 的 Win 10 计算机上的 CefSharp/WinForms/MinimalExample 导致网站出现奇怪的失真。
这是它的样子,
如您所见,当我将鼠标悬停在地址文本框上时,文本框会跳动。然后我尝试切换到 html5test.com,它仍然有同样的问题。
仅当显示设置设置为 100% 以外的任何值时才会出现这种情况。这是一个错误,还是我需要更改某些内容?
好的,其实很简单。它与 CefSharp
无关,但您需要制作 WinForm DPIAware
,最简单的方法是
- 右键单击您的项目并 select 添加 -> 新项目
- Select
Application Manifest File
- 如果您使用的是 VS 2015,请搜索
dpiaware
术语。取消注释代码并重建,你就设置好了。
如果您没有 VS 2015,请复制此代码,
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
并将其粘贴到 <assembly>
标签内。保存并重建,您的 WinForm 是 DPI Aware。
运行 当我将鼠标悬停在 DOM 元素上时,显示设置设置为 125% 的 Win 10 计算机上的 CefSharp/WinForms/MinimalExample 导致网站出现奇怪的失真。
这是它的样子,
如您所见,当我将鼠标悬停在地址文本框上时,文本框会跳动。然后我尝试切换到 html5test.com,它仍然有同样的问题。
仅当显示设置设置为 100% 以外的任何值时才会出现这种情况。这是一个错误,还是我需要更改某些内容?
好的,其实很简单。它与 CefSharp
无关,但您需要制作 WinForm DPIAware
,最简单的方法是
- 右键单击您的项目并 select 添加 -> 新项目
- Select
Application Manifest File
- 如果您使用的是 VS 2015,请搜索
dpiaware
术语。取消注释代码并重建,你就设置好了。
如果您没有 VS 2015,请复制此代码,
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
并将其粘贴到 <assembly>
标签内。保存并重建,您的 WinForm 是 DPI Aware。