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;     如此設置控件,能夠在全局是兼容老版本的狀況下讓所要的控件不兼容老版本的呈現,這樣就會避免此控件在呈現文字時出現錯誤。  
相關文章
相關標籤/搜索