winform中Program文件说明以及Application.SetCompatibleTextRendering函数详解

    建立一个Application的时候发现,咱们的From窗体是经过Program文件调用的,可是在Program文件中Main函数内的方法都是什么意思呢?     首先在Main函数下有三行代码 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1());     下面咱们来逐句讲解:     Application.EnableVisualStyles方法为应用程序启用可视样式。若是控件和操做系统支持视觉样式,则控件将以视觉样式进行绘制。若要使EnableVisualStyles生效,必须在应用程序中建立任何控件以前调用它;EnableVisualStyles一般是Main函数的第一行。当调用EnableVisualStyles时,无需单独的清单便可启用可视化样式。     Application.SetCompatibleTextRenderingDefault函数MSDN解释为: 某些Windows窗体控件可使用TextRenderer类(基于GDI图形库)或Graphics类(基于GDI+图形库)来呈现其文本。考虑到与GDI+相关的性能和本地化问题,此更改在.NET Framework2.0中进行。使用SetCompatibleTextRenderingDefault,可为支持UseCompatibleTextRendering属性的控件设置该属性的默认值。     UseCompatibleTextRendering属性旨在为Windows窗体控件(使用TextRenderer类来呈现文本)与.NET Framework1.0和.NET Framework1.1应用程序(使用Graphics类来执行自定义文本呈现)之间提供可视化兼容性。在大多数状况下,若是您的应用程序不是从.NET Framework1.0或.NET Framework1.1升级的,建议您将UseCompatibleTextRendering设置保留为false的默认值。基于GDI的TextRenderer类是在.NET Framework 2.0中引入的,用于提升性能、改善文本外观以及提升对国际字体的支持。 在早期版本的.NET Framework中,基于Graphics类的GDI+用于执行全部文本呈现。GDI采用与GDI+不一样的方式计算字符间距和自动换行。在使用Graphics类来呈现文本的Windows窗体应用程序中,这可能致使使用TextRenderer显示的控件文本外观与应用程序中的其余文本外观不一样。若要解决此不兼容性,可将UseCompatibleTextRendering属性设置为true。若要将应用程序中全部受支持控件的UseCompatibleTextRendering设置为true,请使用true参数来调用SetCompatibleTextRenderingDefault方法。      若是在另外一个应用程序中承载Windows窗体代码,例如Internet Explorer,切勿调用该方法。仅在独立的Windows窗体应用程序中调用该方法。”     下面重点,如何解决这个问题呢?若是是老代码(好比VB)或者原有调用线程没有设置Application.SetCompatibleTextRenderingDefault(false)或者直接设置Application.SetCompatibleTextRenderingDefault(true)的话,winfrom有些控件在显示的时候会出现问题(好比Label)。     解决的方式是:直接设置控件的呈现不兼容老版本。 代码为: Label label = new Label(); label.UseCompatibleTextRendering = false;     如此设置控件,能够在全局是兼容老版本的状况下让所要的控件不兼容老版本的呈现,这样就会避免此控件在呈现文字时出现错误。  
相关文章
相关标签/搜索