我在VS2017中创建了一个简单的单窗口WinForms应用程序,其中包含一个完全空的形式。我向应用程序添加了一个清单文件,并取消注释了有关DPI感知的部分,以使应用程序能够识别DPI。现在,当我运行应用程序并通过拖动右侧或底部调整窗口大小时,窗口中会绘制黑线。当窗口最小化并再次最大化时,它们会消失。
如果仔细观察图像,可以看到窗口的内容区域(灰色)覆盖了左边缘和下边缘的边框(蓝色)。似乎相关。
这是清单:
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
除了清单更改之外,应用程序的其余部分是由VS2017中的新WinForms应用程序生成的,没有添加。该项目的目标是.NET framework 4.6。我在Windows 10上运行,缩放比例为100%。
我需要应用程序知道dpi的原因是使用此处描述的CommonFileDialog来解决问题:CommonOpenFileDialog cause Windows Form to shrink