在.NET中使用本机外观和感觉绘制文本

问题描述:

我正在使用.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

您是否尝试过使用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