Csharp/C#教程:如何使我的WinForms应用程序DPI意识分享


如何使我的WinForms应用程序DPI意识

我在一家拥有Winforms应用程序作为我们旗舰产品的公司工作。 我们最近重新设计了品牌和用户界面。 我们注意到,窗体现在不能正确显示文本,并且某些控件未对齐或已从边缘消失。

由于我们没有时间,因此我可以使用最少量的重新分解来在此应用程序DPI-Aware上制作表单。

您必须不指定像素坐标和大小。 当你将控件“放置”在表单上时,这将排除使用Control.TopControl.Left ,这是设计人员所做的。

要获得适用于不同DPI设置的UI,几乎所有内容都必须动态resize。 控件应启用Control.AutoSize 。 但只是启用AutoSize会完全搞砸你的布局,因为控制位置仍然是静态的。

要动态定位控件,可以使用容器控件,如FlowLayoutPanelTableLayoutPanel (大小设置为AutoSize )。 根据自动确定的尺寸,那些内部的正常控件将仅在表格周围移动。

正如您所看到的,这并不简单,需要一些经验才能使其正确并需要大量测试(具有不同DPI设置的虚拟机工作得很好)。 但我认为应该这样做,因为如果我的笔记本电脑上的东西看起来很愚蠢,我总是很生气。

最快的方法是重写OnPaint并使用Graphics.DpiX和DpiY属性。 请参阅https://msdn.microsoft.com/en-us/library/ms701681(VS.85).aspx,建议使用清单文件而不是SetDpiAware

上述就是C#学习教程:如何使我的WinForms应用程序DPI意识分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1044212.html

(0)
上一篇 2022年2月3日
下一篇 2022年2月3日

精彩推荐