在C# WinForms中获得更好的文本渲染质量

7

有没有方法可以在窗体中获得更好的文本渲染质量。

我尝试了改变“TextRenderingHint”,但是没有用。

字体是Helvetica Neue LT Pro,在Photoshop中创建的所需效果显示在附图左侧。我使用.otf文件作为资源将其引入到.NET中。

enter image description here


你要将图像放在哪个控件上? - MoonKnight
这是一个按钮控件,我不想在控件上放置图像,我想呈现普通文本。图像总是可能的,但很难维护。 - mustafabar
你的“Helvetica Neue LT Pro”字体是Photoshop特定字体还是内置于Windows字体?这个字体是否存在于你的终端机器上,即你的程序将要安装的机器上?请确保你的按钮不会回退到其他字体,因为你的Helvetica字体可能不存在。 - Siraf
2个回答

4
Winforms不支持Open Type字体。因此,Windows字体映射器为您找到了一个替代的TrueType字体。它类似于您的原始字体,但当然不会呈现相同的效果。未启用ClearType也无法改善结果。
在Windows中,Open Type字体的支持情况并不理想。通常只能依靠Adobe程序很好地支持它,没有适当的后备程序来渲染使用GDI或GDI+的文本。我只知道WPF作为支持它的GUI构建工具。处理Windows上毫无必要的Adobe产品兼容性问题已经有着漫长的历史。这类问题就像我不得不使用Flash或Reader时所经历的痛苦一样。

1

我的建议是首先将您的图像制作成确切所需尺寸,包括所需边距。然后设置 TextImageRelation = ImageAboveTextImageAlign = MiddleCenterAutoSize = TrueAutoSizeMode = GrowAndShrink

除了切换到 WPF 并使用令人惊叹的 WPF 按钮外,这就是您能做的全部。

希望这可以帮到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接