2011-03-03 20 views
0
gfx.DrawString(
    thisTempLabel.LabelText, 
    new Font("Arial", (float)thisTempLabel.fontSize), 
    Brushes.Black, 
    new PointF(thisTempLabel.x, thisTempLabel.y) 
    ); 

フォントサイズ(thisTempLabel.fontSize)をピクセル単位で保存する以外は、これで問題はありません。私は、私の人生はそれらを変換する方法を(おそらく不可能)またはこれを解決するために何をするために働くことはできません。C#描画テキスト

彼らは正しい種類のものが出てきますが、正しい位置には少し出すぎて、大きすぎるものはありません。

精度は非常に重要です。

答えて

2

私はあなたが抱えている問題はconstructor you're usingはサイズがポイントであることを期待しているかもしれないと思う:

public Font(FontFamily family, float emSize) 

emSize
タイプ:System.Single
全角、中新しいフォントのポイント。

あなたがGraphicsUnit.Pixelに設定することができGraphicsUnitパラメータ、取りuse a different overloadすることができますように見えます:大体、であるあなたは、EMのサイズを設定している

gfx.DrawString(
    thisTempLabel.LabelText, 
    new Font("Arial", (float)thisTempLabel.fontSize, GraphicsUnit.Pixel), 
    Brushes.Black, 
    new PointF(thisTempLabel.x, thisTempLabel.y) 
); 

注意、の高さを"M"文字。

+0

ありがとうございます!これを使用するために私のコードをどのように変更すればよいですか?私はmsdnのドキュメントが混乱しているのを見つけました:S –

+0

例を追加しました。 – notJim