C# GUI故障:在Windows 8中显示的复选框文本不完整
我有一个WinForms应用程序(在Win7 64x中开发),带有一个复选框控件。我已将表单的C# GUI故障:在Windows 8中显示的复选框文本不完整,c#,.net,windows,winforms,dpi,C#,.net,Windows,Winforms,Dpi,我有一个WinForms应用程序(在Win7 64x中开发),带有一个复选框控件。我已将表单的AutoScaleMode属性设置为“无”。表格在我的机器上看起来很好 但是,当我将程序发送给运行Windows 8的同事时,复选框文本似乎不完整。我不确定这个控件的什么属性导致了这个问题 我不确定这个控件的什么属性导致了这个问题 很明显,这是AutoScaleMode属性。或者,我想更准确地说,是大小属性 您同事的机器不仅有不同大小的控件,还有不同大小的文本。通过比较屏幕截图,您可以清楚地看到这一
AutoScaleMode
属性设置为“无”。表格在我的机器上看起来很好
但是,当我将程序发送给运行Windows 8的同事时,复选框文本似乎不完整。我不确定这个控件的什么属性导致了这个问题
我不确定这个控件的什么属性导致了这个问题
很明显,这是AutoScaleMode属性。或者,我想更准确地说,是大小属性
您同事的机器不仅有不同大小的控件,还有不同大小的文本。通过比较屏幕截图,您可以清楚地看到这一点。复选框控件允许的大小太小(不够宽),无法显示整个标签,因此它会被截断,您看到的只是标签的前两个字母
解决方案相当简单:使控件的区域更大。更好的办法是通过将容器表单的AutoScaleMode属性设置为更合理的值(如文本或DPI),让这种调整自动发生。这确保了当用户的DPI或字体设置与您在计算机上的设置不同时,它不会中断
从长远来看,最好使用TableLayoutPanel或FlowLayoutPanel,结合锚点和停靠属性,使用流体布局设计表单。在designer中,这比拖放要复杂得多,但在所有环境中都能产生更好的缩放效果。不要将
AutoScaleMode
设置为None
-将布局改为使用不同的缩放。这一点比以往任何时候都更为重要-现在很多机器都有高DPI,您的应用程序将很难在高DPI显示器上使用。我已经尝试将Font
和DPI
作为自动缩放模式,但故障仍然存在。