There is no strictly average font width, since kerning can have an effect depending on what letters are before and after any letter.
If you want to use the non-fixed-size fonts used in the fixed-width script, your main option is to whiten the characters across the width of the uppercase “W” character.
, , , - :
StringBuilder sb = new StringBuilder();
for(char i=32;i<127;i++)
{
sb.Append(i);
}
string printableChars = sb.ToString();
Font stringFont = new Font("Arial", 16);
SizeF stringSize = new SizeF();
stringSize = e.Graphics.MeasureString(printableChars, stringFont);
double average = stringSize.Width / (double) printableChars.Length;