Graphics.DrawString - 组合变音Marcs的错误绘图

时间:2012-08-09 12:24:51

标签: c# winforms graphics gdi+

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

我知道了:

Incorrect GDI+ render

有没有办法获得正确的文字?

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


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));
}

1 个答案:

答案 0 :(得分:2)

TextRenderer似乎更好地绘制它:

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

enter image description here