2011-03-03 111 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
的EM-大小,點,新的字體。

看起來你可以use a different overload這需要GraphicsUnit參數,你可以設置爲GraphicsUnit.Pixel

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

請注意,您設置EM大小,這是,大致的高度「M」字符。

+0

謝謝!我將如何修改我的代碼來使用它?我發現msdn文檔令人困惑:S –

+0

增加了一個例子。 – notJim