GDI+ 的 DrawString 似乎无法呈现 Unicode 上标和/或下标。它将它们显示为正方形并且不堆叠。
使用 DrawString 绘制
private void Form1_Paint(object sender, PaintEventArgs e)
{
String text = "ă̡͈̘̠͕̺̯̖̤̺͇̫̗͓̗̤̩̜̩̯̝ͥͪ̍ͯͥ͒ͫ͛ͮ̿ͥ͛́́̈͒ͯ͊̇̿ͪ̓́̋ͨ̌͗̀̾̃ͧ̋͗ͣͦ̑̈̆̚҉̶̸̶̶̷̷̶̸̨̧̧̨̛̛̕͘͘̕͘͜͟͜͜͡͞͠͠͠͏̴̷̴̡̢̀͟͝͠s̸̢̨̥͚̲̝̝̗̤͇͓̫̝͍̥͓̳͕̰̰̙͖̅̾ͨ͗̈́͌̽̋̇ͦ̃͌͌͌̎̃̒̂̆̌ͤ͗̌͂̿̃̋̈́ͦ͂͋͂̽ͪͣ͂ͩ̓̈͆̀͢͜͟͡͠͠͝҉̶̶̧̨̡̧̧̛́́́́̀͘͘̕͢͜͢͢͠͞͠҉́̕͢͝d̵̴̡̡̢̛͙̞̭̲̺̖̯̳̙̞͇͓̖͙̩̩̗̝̮̉̿ͦ͒̓̑̉ͫ̇͒̓̎ͨ̎ͪ̂ͨͨ̿͛͊͛͛͂͐ͭ̄͑̔̄̋̆ͪ̀ͫ͌̉̍́̚̚͘͘͘͟͢͢͞͠͠ͅ҉̴̷̶̶̸̧̢̧̡̢̧̨̛̕͘͘͘͘͘͢͟͡҉f̸̶̵̤̮͚͔̟̮̗̺͖͉̪͔̫͎͓̱̟̰̹̩̈̊ͮͦͯ̅̊ͨ́͊̔ͪ̐ͤ͌̑͋̈́̐͆ͦ̿͌̐̓͐̌͂̅ͩ̄͊͐ͨ̄̄̈́̆̚̚͜͏͏̵̸̧̧̛̛͞͡͡͏̡͘͟͠͏̸̶͏͟͡͞͏̸̡͝͏͠͞͏̴͡͏̢͝";
e.Graphics.DrawString(text, new Font("Arial Unicode MS", 12), Brushes.Black, 30, 30);
}
使用 TextRenderer 绘制
TextRenderer.DrawText(e.Graphics, text, new Font("Arial Unicode MS", 12), new Point(30, 30), Color.Black);
火狐绘制的
FireFox 是如何正确绘制的?
我正在使用的数据 - http://pastebin.com/p5Cp3qUM