我不想使用兼容的文本渲染,但我不想使用
Application.SetCompatibleTextRenderingDefault(false);
当然,我认为我所要做的就是将每个标签的 UseCompatibleTextRendering 属性设置为 false。但是,如果 UseCompatibleTextRendering 设置为 true,Forms Designer 显然只会生成代码来设置属性。
没问题,我想,这一定意味着 UseCompatibleTextRendering 默认初始化为 false。然而,当我启动我的表单时,你瞧,我看到丑陋的 CompatibleTextRendering。所以,一个问题:
1) 当我将 UseCompatibleTextRendering 设置为 false 时,为什么设计师不添加代码,而当我将它设置为 true 时,它是,如果默认为 true?
最佳答案
设计者没有添加设置UseCompatibleTextRendering
的代码至 false
,因为 false
是默认值。
那么,如果属性的默认值为false
,为什么控件默认使用兼容的文本渲染呢? ,那好像……很奇怪?嗯,Application.SetCompatibleTextRenderingDefault
方法将给定值赋给Control类中的一个静态字段,Control类的静态构造函数将这个字段初始化为true
。 .
因此,删除行 Application.SetCompatibleTextRenderingDefault(false);
将导致应用程序使用兼容的文本呈现,这与您基于 UseCompatibleTextRendering
的默认值可能会想到的相反属性(property)。
我能看到的唯一合理的解决方案是简单地将自动生成的调用留给 Application.SetCompatibleTextRenderingDefault
它在哪里。
关于c# - UseCompatibleTextRendering 属性在设置为 false 时不是由设计器创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296951/