当前位置: 首页 > 编程语言 > C#

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

时间:2023-04-10 15:27:11 C#

C#学习教程:如何使我的WinForms应用程序具有DPI感知能力我们最近重新设计了品牌和用户界面。我们注意到表单现在无法正确显示文本,并且某些控件未对齐或从边缘消失。由于我们没有时间,我可以通过最少的重构在这个应用程序DPI-Aware上制作表单。您不得指定像素坐标和大小。这排除了当您在窗体上“放置”控件时使用Control.Top和Control.Left的可能性,而这正是设计者所做的。要获得适用于不同DPI设置的UI,几乎所有内容都必须动态调整大小。控件应启用Control.AutoSize。但是仅仅启用AutoSize将完全搞砸你的布局,因为控制位置仍然是静态的。要动态定位控件,您可以使用容器控件,例如FlowLayoutPanel和TableLayoutPanel(大小设置为AutoSize)。那些内部法线控件只会根据自动确定的大小在桌子上移动。如您所见,这并不简单,需要一些经验才能正确完成并进行大量测试(具有不同DPI设置的虚拟机工作得很好)。但我认为应该这样做,因为如果笔记本电脑上的东西看起来很蠢,我总是很生气。最快的方法是重写OnPaint并使用Graphics.DpiX和DpiY属性。参见http://msdn.microsoft.com/en-us/library/ms701681(VS.85).aspx,建议使用manifest文件,而不是SetDpiAware以上是C#学习教程:HowtomakemyWinFormsapplicationDPIaware分享如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: