2

「分音記号の組み合わせ」ユニコードサブレンジ(U + 0300 - U + FE23)の記号を含むテキストを描画しようとしています。たとえば、「T」と「\u0305」の 2 つの文字を含む文字列「T̅」を描画しようとしました。

私はそれを持っています:

不適切な 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 に答える