Я использую метод TextRenderer.MeasureText (имя пользователя, новый шрифт («Verdana», 12)). Ширина для проверки размера имени пользователя , и он показывает мне разные значения для одного и того же имени пользователя на моем локальном компьютере и на сервере. Также в модульном тестировании он вычисляет разную ширину, чем в веб-приложении на локальном компьютере (такая же ширина, как и на сервере). Я думаю, что это связано с тем, что на моем локальном компьютере IIS меняются разные настройки, но это меня озадачивает. Я думаю, что значение, показанное на моей локальной машине, неверно, потому что оно слишком велико (180 пикселей), чем разрешено 140 пикселей.ASP.NET MVC System.Windows.Forms.TextRenderer.MeasureText дает разные результаты на разных машинах
Обновление: Когда я использовал контекст устройства он дал те же самые результаты, разной ширины на разных машинах и в единичном тесте и веб-приложение на той же машине:
Bitmap B = new Bitmap(16, 16); // Whatever, we only need a Graphics
Graphics G = Graphics.FromImage(B);
int verdanaWidth = TextRenderer.MeasureText(G, username, new Font("Verdana", 12)).Width;
Ширина отличается от модульного тестирования и в веб-приложение, потому что графический объект имеет различное разрешение:
float dpiX = G.DpiX; // 96 in unit test, 120 in web app on local machine, 96 on server
float dpiY = G.DpiY; // 96 in unit test, 120 in web app on local machine, 96 on server
Когда я использовал контекст устройства, он дал мне тот же результат: – Petr