Как выяснить, какой размер шрифта использовать в зависимости от размера Icon? - PullRequest
0 голосов
/ 20 июня 2010

Я пытаюсь создать значок панели задач в C #, который бы отображал число, представляющее текущее время процессора приложения.Я могу определить правильный размер значка, просто ссылаясь на размеры значков на панели задач по умолчанию, однако я столкнулся с проблемой.Различные размеры значков хорошо работают с разными размерами шрифта текста.Мне нужно выяснить, как выбрать размер шрифта, который был бы максимально четким и понятным, учитывая размер создаваемого значка.

В этом случае размер шрифта 18 работает хорошо, так как разрешение растрового изображения создаваемого значка составляет 32x32 (поскольку мой монитор имеет разрешение 1680 x 1050).Однако предположим, что создаваемый значок имеет разрешение 16x16 (или что-то меньшее, чем 32 x 32) - тогда размер шрифта 18 будет слишком большим для самой иконки.Есть ли какой-нибудь метод вызова, который я могу сделать, или что-то в этом роде, которое сообщит Windows, чтобы определить оптимальный размер шрифта для использования в зависимости от разрешения значка, на котором он должен отображаться?Извините, если это запутанный пост, я был бы рад что-либо уточнить.

 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());
        }

1 Ответ

0 голосов
/ 20 июня 2010

Нет прямого способа сделать то, что вы хотите.

Но вы можете использовать Graphics.MeasureString , чтобы измерить размер отображаемой строки. Начните измерения с большого размера шрифта, а затем попробуйте постепенно уменьшать размеры, пока не получите тот, который будет соответствовать размерам вашего значка.

...