WinForms アプリでテキストを出力するために、従来の DrawString メソッドを使用しています。典型的な呼び出しは次のようになります。
g.DrawString(text, font, brush, new Rectangle(x, y, width, height), stringFormat);
stringFormat.Trimming が StringTrimming.EllipsisCharacter と等しい場合、テキストがクリップされ、同じ左/上/高さの長方形が使用されると、テキストが突然 1 ピクセル上に「ジャンプ」します。
これは、MS Sans Serif や Courier New などの多くの標準フォントで発生しますが、Segoe UI などの他のフォントでは発生しません。さらに奇妙なことに、stringFormat.FormatFlags に StringFormatFlags.DirectionRightToLeft を指定すると、この影響を回避できます。
これは GDI+ の既知の問題ですか? その回避策はありますか?
PS .NET 4.0用にコンパイルされたアプリで、Win 8.1 Pro 64ビットでこれらすべてをテストしました。