抄的别人的自定义控件样式,发现拿过来后显示有些异常。检查了各项属性后发现一模一样,甚至我连我的初始界面Form1都替换成了他的代码,可是显示还是存在问题。


是的,你没看错,我的字体都没显示全,只有一半(自定义控件的边界就是随意拉的,输入框的字体有一部分在边界外,蓝色线部分也有部分在边界外。这点我和他都一样);可是他的确实完完整整的显示出来了。

最后将所有的class进行排查后。


从以上两张图的对比中,我找到了差异。
是这行ApplicationConfiguration.Initialize()方法里System.Windows.Forms.Application.SetHighDpiMode(HighDpiMode.SystemAware);的搞的鬼!
把他注释掉之后,字体大小边界的显示就正常了(如图)

(忽略掉textboox输入框的边框凹凸的问题,那是他的program代码的前两行造成的)
不过此时又出现了另一个问题。我的蓝色的线怎么没显示出来 ?这又是什么代码控制的啊,头秃
------------------------------------------分割线--------------------------------------------------
我知道了,把显示不出来的东西的属性设置一下。
如果是label没显示出来或显示半截,那就将属性AutoSize设置为true;
如果是pictrueBox显示出来半截,那就将属性SIzeMode设置为System.Windows.Forms.PictureBoxSizeMode.AutoSize。
别的控件也可以根据类似的属性调一调试试。