まず、質問How to measure width of character precisely?
は、は本当にこの場合は役に立たないので、これはの複製ではありません。文字列の幅を正確に測定する方法は?
私は文字列を持っています。 graphics.DrawString
を使用して描画しますが、後に別の文字を配置する必要がある場合は、前の文字列の正確な幅を知る必要があります。私はgraphics.MeasureStringを使用し、このために
:
StringFormat format = new StringFormat(StringFormat.GenericTypographic);
format.Alignment = StringAlignment.Center;
format.Trimming = StringTrimming.None;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
しかし私はそれらのすべては、パラメータのすべての可能な組み合わせで、失敗ばかりTextRendered.MeasureText
として、他の多くの機能を試してみました。
上記のMeasureStringの組み合わせは、私が必要とするものに最も近いです(ほとんどの場合、特殊文字を除いて動作します)。ただし、#breakなどの文字を使用します。幅は短くても長くてもよい。
DrawString関数によって生成されるテキストの正確なサイズを取得する方法はありますか? DrawStringは描画領域のサイズをどのように計算しますか?それはサイズが常に異なるので、明らかに他の機能でなければなりません。
アプリケーション全体のソースコードはここにhttps://gitorious.org/pidgeon/pidgeon-main/です(私はこれで動作するファイルは、https://gitorious.org/pidgeon/pidgeon-main/blobs/master/scrollback/SBABox.csある)
可能複製([文字列のピクセル幅を測定するために、どのように.NETでDrawing.Bitmap上drawed?] http://stackoverflow.com/questions/2555739/how-to-measure-the-pixel-width-of-the-string-drawed-over-drawing-bitmap-in-net) –
質問が明らかにしなかった場合MeasureStringは機能しません。重複しています – Petr
「動作しません」とMeasureStringとDrawStringが一緒に含まれているコードについては、実際の質問ではありません。小さなテストケースを用意しましょう。 –