我正在尝试绘制文本,其中包含来自“组合变音符号”unicode 子范围 (U+0300 - U+FE23) 的符号。例如,我尝试绘制字符串“T̅”,其中包含两个字符:“T”和“\u0305”。
我知道了:
有什么办法可以得到正确的文本吗?
补充:我也需要绘制旋转文本。
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));
}
最佳答案
TextRenderer 似乎画得更好:
TextRenderer.DrawText(g, "Test1 T̅ T\u0305", fontTahoma,
new Point(120, 20), Color.Black);
关于c# - Graphics.DrawString - 组合变音符的绘制不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883405/