我正在尝试在C#中创建一个任务栏图标,该图标将显示一个代表应用程序当前处理器时间的数字。我可以通过简单地引用默认任务栏图标的尺寸来找出图标的正确大小,但是,我遇到了一个问题。不同的图标大小适用于不同的文本字体大小。我需要弄清楚如何根据要创建的Icon的大小选择尽可能清晰易读的字体大小。
在这种情况下,字体大小18效果很好,因为我正在创建的Icon的位图分辨率为32x32(因为我的显示器的分辨率为1680 x 1050)。但是,假设要制作的图标的分辨率为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 :(得分:0)
没有直接的方法来做你想做的事。
但是你可以做的是使用Graphics.MeasureString来衡量渲染字符串的大小。开始使用较大的字体进行测量,然后尝试逐渐缩小尺寸,直到找到适合您图标尺寸的尺寸。