を使用して文字列を描画していてGraphics.DrawString
、末尾のスペースを含めたいので、を使用します StringFormatFlags.MeasureTrailingSpaces
。単一行の文字列の場合、これは正常に機能しますが、改行文字によって行末に空白が生じることに気付きました。これは私が望んでいることではありません(そして誰がそうするのだろうか)。
MyDrawString
そこで、次の出力を作成するメソッドを実装したいと思います。|
右揃えの描画操作のx座標です。実装は、中央に配置された文字列に対しても機能するはずです。
MyDrawString("Test") -> Test|
MyDrawString("Test ") -> Test |
MyDrawString("Test\r\nLine 2 ") -> Test|
Line 2 |
残念ながら、最後の呼び出しの出力は次のようになります
Test |
Line 2 |
文字列を分割して1行ずつ描画せずに、目的を達成する方法はありますか?
DrawString
そうでない場合、1回の呼び出しで使用するのと同じ垂直位置に個別に線を引くための最良のアプローチは何でしょうか。MeasureString().Height
2本の線の間の完全な距離を教えてくれませんでした。
アップデート
複数行の文字列を描画するときに行の高さを決定する方法を説明するこのMSDNページを見つけました。それでも、テキストブロック全体だけでなく、個々の行の垂直方向の配置を処理DrawString
する単一の呼び出しを使用したいと思います。DrawString
ヒントはありますか?