Мы используем Measurestring()
для расчета размера, размера текста и длины тонов. Для разного разрешения экрана MeasureString()
дает разные размеры.MeasureString() дает разные размеры для разных разрешений экрана
Graphics g;
Size size = g.MeasureString(GetItemText(this.Items[n]), this.Font).ToSize();
width=size.width;
для разрешения экрана 125%, size.width = 76 и Для разрешения экрана 100% и 150%, size.width = 61.
Как я могу получить такую же ширину в этом коде, пожалуйста, предложите мне некоторые идеи для измерения размера с помощью measurestring().
Жду предложений ........
Для чего вы используете измерение? Если «Графика» - это то, что отображается на экране, то, очевидно, размер изменяется с разрешением экрана. В этом-то и дело. Если вы хотите размер для определенного разрешения, вы можете создать «битмап» с этим разрешением и использовать его объект «Graphics» для измерения строки. – juharr
Вы также можете посмотреть https://msdn.microsoft.com/en-us/library/system.drawing.graphics.pageunit(v=vs.110).aspx, т. Е. Свойство PageUnit – TheLethalCoder
Это совершенно нормально, размер шрифта выражается в * точках *. Один пункт - 1/72 дюйма. Когда вы увеличиваете DPI видеоадаптера до 125%, меняется соотношение между пикселями и пикселями. От 96 пикселей на дюйм до 120 пикселей на дюйм. Поэтому вам нужно больше пикселей, чтобы получить одинаковый размер точки. И таким образом получить результат от MeasureString, который на 125% больше. Когда вы переходите на 150% и не заявляете, что ваше приложение имеет значение dpiAware, тогда запускается функция виртуализации Windows для Windows. Это означает, что dpi составляет 96 и масштабирует ваше окно. Заметно, текст нечеткий. –