2010-06-20 27 views
0

我試圖在C#中創建一個任務欄圖標,它將顯示一個代表應用程序當前處理器時間的數字。我可以通過簡單引用默認的任務欄圖標尺寸來找出圖標的大小,但是,我遇到了一個問題。不同的圖標大小適用於不同的文本字體大小。我需要弄清楚如何選擇一個字體大小,因爲要創建的圖標的大小,字體大小應儘可能清晰易讀。如何根據Icon的大小找出使用哪種字體大小?

在這種情況下,由於我創建的圖標的位圖分辨率爲32x32(因爲我的顯示器的分辨率爲1680 x 1050),所以字體大小18的效果很好。但是,假設要製作的圖標的分辨率爲16x16(或小於32 x 32) - 則圖標本身的字體大小爲18將會太大。有沒有方法調用我可以做,或沿着這些行告訴窗口找出最佳的字體大小使用取決於它將被顯示的圖標的分辨率?如果這是一個令人困惑的帖子,我很抱歉,我很樂意澄清任何事情。

using (var image = new Bitmap(Icon.Width, Icon.Height)) 
     using (var g = Graphics.FromImage(image)) 
     { 
      g.DrawString(cpuReading.ToString(), new Font("Times New Roman", 18), new SolidBrush(Color.LightGreen), new PointF()); 
      this.tskBarIcon.Icon = Icon.FromHandle(image.GetHicon()); 
     } 

回答

0

有沒有直接的方法來做你想做的。

但您可以使用Graphics.MeasureString來測量渲染字符串的大小。開始以較大的字體尺寸進行測量,然後逐漸嘗試較小的尺寸,直到找到適合您圖標尺寸的尺寸。

相關問題