0

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ビットでこれらすべてをテストしました。

4

0 に答える 0