我正在使用.NET1,並且希望將文本繪製爲本地文本。可以通過配置圖形嗎?在.NET中使用本機外觀和感覺繪製文本
當FlatStyle設置爲System時,我需要將該文本渲染爲System.Windows.Forms.Label。
我已經配置了SmoothingMode和AntiAliasGridFit,但不幸的是,結果是不一樣的:
我使用的是在這兩種情況下相同的字體(UI的Segoe宋體)。
任何想法?
我正在使用.NET1,並且希望將文本繪製爲本地文本。可以通過配置圖形嗎?在.NET中使用本機外觀和感覺繪製文本
當FlatStyle設置爲System時,我需要將該文本渲染爲System.Windows.Forms.Label。
我已經配置了SmoothingMode和AntiAliasGridFit,但不幸的是,結果是不一樣的:
我使用的是在這兩種情況下相同的字體(UI的Segoe宋體)。
任何想法?
您是否嘗試過使用TextRenderer
類而不是Graphics.DrawString
例程?它被引入到框架中,恰恰是因爲Windows窗體的默認呈現和.NET的GDI +包裝器之間存在差異。
的MSDN說:
TextRenderer類提供了一組可用於在Windows窗體控件測量和繪製文字的靜態方法。
我相信「TextRenderer」類只在2.0及更高版本的框架中可用。他明確指出.Net 1.1。 – 2011-03-17 19:48:34
@布蘭登:哎,沒看到。但要直言不諱,這是一個不合理的要求,我會*強烈建議立即轉換平臺,*在做任何其他工作之前。 – 2011-03-17 20:52:07
那麼,我討厭在.NET 1.1中開發,但它是我的一個需求。我們需要支持與.NET 2.0或更高版本不兼容的Visual Studio 2003集成。 – 2011-03-18 09:54:19
你是如何渲染文本?在.net1.1我假設你正在使用Graphics.DrawString?如果DrawString沒有產生所需的格式,也許你應該看看調用本地的「DrawTextEx」函數。 – 2011-03-17 19:33:27
這已經解決了.NET之前的4個主要版本。有點毫無意義的教老狗新花樣。 – 2011-03-17 20:07:24
@Hans也許他有一個特定的目標平臺要求?在理想的世界中,我們都會使用最新最好的一切。鑑於,1.1是古老的,但IE6也是如此,可悲的是,它仍然是許多現實世界中需要的目標平臺。 – 2011-03-17 20:17:04