string measureString = "This is a test string, will be printed at random offsets!";
int numChars= measureString.Length;

CharacterRange[] characterRanges = new CharacterRange[numChars];
for(int i = 0; i<numChars; i++)
characterRanges[i] = new CharacterRange(i, 1);
StringFormat stringFormat = new StringFormat();
stringFormat.SetMeasurableCharacterRanges(characterRanges); //ここでエラー

この断片コードを実行すると一番下の所でオーバフローが起きてしまいます。
いろいろ分析してみたんですが無理だったので分かる方教えてください。