代码之家  ›  专栏  ›  技术社区  ›  Lyubomyr Shaydariv

Visual Studio和GDI++

  •  0
  • Lyubomyr Shaydariv  · 技术社区  · 15 年前

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

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

    1 回复  |  直到 11 年前
        1
  •  4
  •   Hans Passant    15 年前

    这个 blog post 我们尊敬的赞助人是相关的。GDI+确实是以苹果的方式完成的,它使用真正的分辨率独立渲染。为此,它被广泛地平移,以至于它在.NET 2.0中被textenderer类替换。它使用gdi drawtextextexx()函数绘制文本。要给出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);
        }
      }
    

    嗯,但是我还没有一台看起来不那么糟糕的机器。text渲染器保存了一天。

    直到.NET 3.0引入WPF。返回到与分辨率无关的渲染。仇恨的程度 that generated 令人震惊。

    长话短说,大多数用户喜欢GDI文本渲染。或者至少当他们不明白的时候,他们会变得很有声音。Visual Studio和Chrome无疑将gdi用于文本输出。虽然Chrome是开源的Afaik,但这并不是你可以轻易改变自己的东西。

    只需等待下一个版本。Visual Studio 2010将使用WPF。beta 1对模糊的文本产生了很多仇恨。但是WPF已经 been tweaked 限制模糊度,使之不再适合你的口味。