public int StringWidth (string s, int startIndex, int length)
{
if (string.IsNullOrEmpty (s)) return 0;
var end = startIndex + length;
if (end <= 0) return 0;
var a = 0.0f;
for (var i = startIndex; i < end; i++) {
if (s[i] < NumWidths) {
a += _widths[s[i]];
}
else {
a += _widths[' '];
}
}
return (int)(a + 0.5f);
}