Я создаю приложение Windows Forms для .Net 2.0 SP2. Шрифты формы отлично смотрятся на моей машине, когда я пробовал на другой машине, она выглядит больше. (Это не из-за разницы в разрешении, шрифты больше по сравнению с другими значками и т. Д.)
Я попытался отладить проблему и обнаружил, что следующий код возвращает разные размеры на разных компьютерах.
//inside a windows form
private void checkfont()
{
var g = this.CreateGraphics();
MessageBox.Show(g.MeasureString("Hello World", this.Font) + "," + this.Font);
}
Я ожидаю, что graphics.measurestring () вернет одно и то же значение для одних и тех же аргументов на разных машинах.
Для шрифта 'Verdana 8.25'
- На машине 1 «Hello World» имеет размер 69.0px, 14.7px
- На машине 2 "Hello World" имеет размеры 86,3 пикселя, 18,4 пикселя
Почему эта разница? из-за этого шрифты моего приложения выглядят больше и влияют на макет.
редактирование:
Обе машины имеют .Net 2.0 SP2, но их разрешение и размеры экрана различаются. Я понимаю, что физическое измерение шрифтов (на физическом экране) зависит от разрешения и размера экрана. Но мой вопрос, почему их размерность в пиксельных единицах отличается?
Machine 2 - eeetop ET1602 с windows xp, системой сенсорного экрана, по умолчанию она поставляется со всеми настольными шрифтами большего размера, но я по умолчанию сбросил шрифты windows / windows.