0

我试图在这里找到一个类似的问题,但发现了一些不同的东西。我更喜欢在 Windows 中使用显示字体平滑,但我不喜欢 Windows XP 平滑显示字体边缘的方式。目前我使用 GDI++ 来平滑显示字体,使它们看起来非常类似于在 Windows 的 Safari 浏览器中呈现的文本(据我所知,不是 Mac 用户,它是 MacOS 的本机方法)。太好了,GDI++ 几乎为我使用的所有应用程序渲染了与 Safari 非常相似的字体,但我很失望 GDI++ 不(也不能?)支持 Visual Studio 和 Google Chrome。我猜这些应用程序使用了另一种方式来呈现显示字体(只是 GDI O_o;我猜他们考虑了 Windows 字体边缘平滑设置 [无平滑,标准或 ClearType]),但我不确定,我 我不熟悉它。:(

请向我澄清这一点。我真的很想在 Visual Studio 和 Google Chrome 中使用 GDI++。可能有人使用了一些解决方法(当然,如果可能的话)。谢谢你。

4

1 回答 1

4

我们尊敬的恩人的这篇博客文章是相关的。GDI+ 确实以 Apple 的方式做事,它使用真正的分辨率独立渲染。它为此受到了广泛的关注,以至于它在 .NET 2.0 中被 TextRenderer 类所取代。它使用 GDI DrawTextEx() 函数来绘制文本。举例说明 GDI+ 的表现如何,请尝试运行这个示例 Windows 窗体窗体:

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    protected override void OnPaint(PaintEventArgs e) {
      e.Graphics.DrawString("Hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!", this.Font, Brushes.Black, 0, 0);
    }
  }

YMMV,但我还没有一台看起来不那么糟糕的机器。TextRenderer 拯救了这一天。

直到 .NET 3.0 引入 WPF。回到与分辨率无关的渲染。产生的仇恨量令人震惊。

长话短说,大多数用户都喜欢 GDI 文本渲染。或者至少当他们没有得到它时,他们会变得非常直言不讳。Visual Studio 和 Chrome 无疑使用 GDI 进行文本输出。尽管 Chrome 是开源的 afaik,但这不是您可以轻松更改的内容。

只等下一个版本。Visual Studio 2010 将使用 WPF。Beta 1 对模糊文本产生了很多仇恨。但是 WPF 已经过调整以限制模糊,因此它可能不再适合您的口味。

于 2009-12-28T11:07:31.773 回答