2011-03-17 41 views
1

我正在使用.NET1,並且希望將文本繪製爲本地文本。可以通過配置圖形嗎?在.NET中使用本機外觀和感覺繪製文本

當FlatStyle設置爲System時,我需要將該文本渲染爲System.Windows.Forms.Label。

我已經配置了SmoothingMode和AntiAliasGridFit,但不幸的是,結果是不一樣的:

enter image description here

我使用的是在這兩種情況下相同的字體(UI的Segoe宋體)。

任何想法?

+2

你是如何渲染文本?在.net1.1我假設你正在使用Graphics.DrawString?如果DrawString沒有產生所需的格式,也許你應該看看調用本地的「DrawTextEx」函數。 – 2011-03-17 19:33:27

+0

這已經解決了.NET之前的4個主要版本。有點毫無意義的教老狗新花樣。 – 2011-03-17 20:07:24

+0

@Hans也許他有一個特定的目標平臺要求?在理想的世界中,我們都會使用最新最好的一切。鑑於,1.1是古老的,但IE6也是如此,可悲的是,它仍然是許多現實世界中需要的目標平臺。 – 2011-03-17 20:17:04

回答

0

您是否嘗試過使用TextRenderer類而不是Graphics.DrawString例程?它被引入到框架中,恰恰是因爲Windows窗體的默認呈現和.NET的GDI +包裝器之間存在差異。

的MSDN說:

TextRenderer類提供了一組可用於在Windows窗體控件測量和繪製文字的靜態方法。

+0

我相信「TextRenderer」類只在2.0及更高版本的框架中可用。他明確指出.Net 1.1。 – 2011-03-17 19:48:34

+0

@布蘭登:哎,沒看到。但要直言不諱,這是一個不合理的要求,我會*強烈建議立即轉換平臺,*在做任何其他工作之前。 – 2011-03-17 20:52:07

+0

那麼,我討厭在.NET 1.1中開發,但它是我的一個需求。我們需要支持與.NET 2.0或更高版本不兼容的Visual Studio 2003集成。 – 2011-03-18 09:54:19