以像素为单位绘制所有字符均等宽的字符串的方法是什么?

What is the way to draw a string with all characters equally wide in terms of pixels?

  Bitmap bmpChar = new Bitmap(16,16);       
  FontFamily fontFamily = new FontFamily("Arial");

  Font font = new Font(
               fontFamily,
               16,
               FontStyle.Regular,
               GraphicsUnit.Pixel);


  Graphics g = Graphics.FromImage(testBmp);
  g.DrawString("test", font, Brushes.Red, 0, 0);

上面的代码在 16x16 区域打印两个字符(它有 "te" 个 "test",而我预计只有 "t")。在 winforms 中,当将所有字母和数字作为字符串绘制到位图上时,有什么平台无关的(32 位、64 位、NT、XP、7、10)方法可以使所有字母和数字具有恒定宽度的字符?

如果可能的话,我会使用 monospaced font。否则,您要么在光栅化后拉伸字母,要么必须计算每个字母之间的间距量,这会复杂得多。