2

我正在尝试绘制文本,其中包含来自“组合变音符号”unicode 子范围(U+0300 - U+FE23)的符号。例如,我尝试绘制字符串“T̅”,其中包含两个字符:“T”和“\u0305”。

我有这个:

不正确的 GDI+ 渲染

有没有办法得到正确的文本?

另外:我也需要绘制旋转文本。


PS:我的代码:

private void Form1_Paint(object sender, PaintEventArgs e) {
  Graphics g = e.Graphics;
  Font fontTahoma = new Font("Tahoma", 16);
  Font fontTimesNewRom = new Font("Times New Romulan", 16);
  Font fontArial = new Font("Arial", 16);
  Brush brush = new SolidBrush(Color.Red);
  g.DrawString("Test1 T̅ T\u0305", fontTahoma, brush, new PointF(20, 20));
  g.DrawString("Test1 T̅ T\u0305", fontTimesNewRom, brush, new PointF(20, 40));
  g.DrawString("Test1 T̅ N\u0305", fontArial, brush, new PointF(20, 60));
}
4

1 回答 1

2

TextRenderer 似乎画得更好:

TextRenderer.DrawText(g, "Test1 T̅ T\u0305", fontTahoma, 
                                            new Point(120, 20), Color.Black);

在此处输入图像描述

于 2012-08-09T12:34:43.893 回答