Что такое отключить масштабирование изображения при высоком разрешении экрана
Как настроить Windows для работы с дисплеями высокого разрешения
Всё чаще на форумах можно прочесть о том, что автоматическая настройка изображения в ОС Windows приводит к визуальному дискомфорту – слишком мелкий шрифт затрудняет чтение, крупные ярлыки занимают половину экрана, а сообщения в диалоговых окнах и другие элементы меню не умещаются в отведённое им место. При особо экстремальном сочетании настроек работа вообще становится невозможной сразу после включения. Благо, всё довольно легко настроить, причём для каждого пользователя по отдельности.
Операционные системы Windows Vista, 7 и 8 используют автоматическую подстройку параметров изображения по записи EDID монитора и с учётом драйвера видеокарты. При загрузке выбирается не только «родное» разрешение – изменяется также степень масштабирования текста и графических элементов меню. Часто это оказывается медвежьей услугой, но проблема решается за пару минут.
При разработке дизайна ОС и программ размеры всех элементов пользовательского интерфейса выбираются с учётом типичных значений пиксельной плотности. У большинства мониторов не так давно она составляла 96 DPI. В современных матрицах данный параметр существенно отличается. Например, ноутбуки ASUS ZENBOOK Prime и Sony VAIO SVD при диагонали экрана 11,6″ имеют разрешение 1920×1080. Соответственно, линейная плотность расположения пикселей составляет 190 DPI.
Обратная ситуация в том случае, если скромное разрешение используется на неадекватно большом для него экране. В продаже до сих пор встречаются такие мониторы, как LG Flatron E1910, Acer V193 и подобные им. Разрешение 1280×1024 при диагонали 19″ и соотношении сторон 4:3 даёт низкую пиксельную плотность – 84 DPI.
Подобрать подходящие параметры самостоятельно можно с помощью расширенных настроек изображения. Они находятся в панели управления в разделе «Оформление и персонализация». Подраздел «Экран» сразу открывается на вкладке «удобство чтения с экрана». По умолчанию предлагается нехитрый выбор масштаба текста: мелкий (100%), средний (125%) и крупный (150%). Чтобы подстроить его более тонко, зайдите на последнюю вкладку «Другой размер шрифта» – там его можно будет выбрать в диапазоне от 100 до 500% с шагом 1% (подберётся ближайшее возможное значение).
При выборе более 200% на большинстве экранов всё становится настолько крупным, что часто не удастся даже вновь вызывать это меню. Если вы допустили ошибку и не можете исправить её прежним способом, вызовите меню настройки напрямую. Для этого нажмите «Пуск» и в строке «Найти программы и файлы» введите «dpiscaling» (без кавычек) и нажмите
Интерфейс некоторых программ ограниченно совместим с режимом масштабирования. Для них его лучше отключить заранее. Сделать это можно избирательно для конкретных программ. В первую очередь это касается систем автоматизированного проектирования, браузеров (во время просмотра флэш-видео) и большинства игр. Для этого щёлкните на ярлыке правой клавишей мыши и в появившемся контекстном меню выберите «Свойства». Перейдите на вкладку «Совместимость» и установите флажок последнего параметра – «Отключить масштабирование изображения при высоком разрешении экрана».
Обратите внимание, что после обновления версии программы флаг этой опции будет сброшен.
Что означает «Отключить масштабирование дисплея при настройках высокого разрешения» в Windows 10?
При проверке в свойствах совместимости для ярлыка, я предполагаю, что это означает, что «Масштабирование дисплея» отключено, когда есть «Настройки высокого разрешения». Хорошо, но мои вопросы:
Если это так, то верно ли, что процентное значение, отличное от 100%, представляет собой «Масштабирование дисплея» (что должно быть отключено), а процентное значение в 100% означает отсутствие масштабирования дисплея?
На самом деле я хочу, чтобы масштабирование Windows оставалось на 150%, чтобы различные элементы пользовательского интерфейса были удобочитаемыми, и чтобы Lightroom и Photoshop работали с разрешением 2560×1440. Однако, когда я устанавливаю флажок «Отключить масштабирование дисплея при настройках высокого DPI» для этих приложений, их пользовательский интерфейс остается неизменным.
То же самое для Chrome. Независимо от того, установлен этот флажок или нет, значения в JavaScript для screen.width и screen.height составляют 1706×960. Когда я настраиваю Windows на 100% масштабирование, размеры экрана в Chrome отображаются как 2560×1440, что я и ожидал.
В Windows 10 есть 2 способа масштабирования дисплея:
Способ, который вы показали как «Пользовательский уровень масштабирования», является устаревшим и не рекомендуется
Вместо этого щелкните правой кнопкой мыши на рабочем столе, выберите «Настройка отображения», затем в разделе «Настройка отображения» установите «Изменить размер текста, приложений и т. Д.» На «150%» (это может сначала привести к отключению пользовательского масштабирования и регистрации. и обратно)
Надеемся, что использование второго метода решит вашу проблему, так как он работает намного лучше, чем первый.
Сначала я отвечу на ваш второй вопрос, а затем на первый.
Высокий DPI
Высокий DPI относится к настройке, когда дисплей установлен на более чем 96 точек на дюйм. Точный DPI вашего дисплея зависит от 3 вещей.
У меня дисплей 2560х1440 14 дюймов. Это означает 209 точек на дюйм (вы можете использовать теорему Пифагора), что означает максимальную настройку 192 точек на дюйм. Windows может быть настроен на следующие настройки точек на дюйм
Это то, что вы установили через настройки дисплея в панели управления. Таким образом, я могу установить для моего 14 «дисплея любое значение DPI от 96 до 192 точек на дюйм.
Масштабирование дисплея
Когда мы меняем настройку DPI дисплея, количество пикселей, доступных на дисплее, изменяется. Предположим, мы переместились с 96 точек на дюйм до 192 точек на дюйм, количество доступных пикселей на дисплее удвоится (обратите внимание, что пиксели присутствуют всегда, мы просто используем их меньше или больше, в зависимости от настройки разрешения). При настройке 96 точек на дюйм окно шириной 96 пикселей будет занимать всю ширину экрана. Но при настройке 192 dpi это же окно будет занимать только половину ширины экрана. Это может привести к тому, что ваши шрифты (и другие вещи) окажутся слишком маленькими для чтения. Итак, Windows предлагает опцию масштабирования отображения. Когда DPI дисплея изменяется, окна автоматически масштабируют размеры окна в соответствии с дисплеем. В приведенном выше случае, после масштабирования отображения, наше окно будет занимать всю ширину экрана.
Как отключить масштабирование в приложениях в Windows 10
от sasza
Большие мониторы отлично подходят для экранной площади, которую они предоставляют, но для того, чтобы их использовать, особенно тот, который представляет собой HD-дисплей, вы должны масштабировать его, иначе все будет слишком маленьким. В Windows 10 есть встроенная функция масштабирования, которая работает, и в основном она работает хорошо. Масштабирование применяется ко всему пользовательскому интерфейсу ОС и установленным вами приложениям. Хотя Windows 10 отлично работает в увеличенном масштабе, с приложениями — совсем другое дело. Не все приложения хорошо работают с этой функцией, и часто вы получаете размытый текст и переполненные элементы, что затрудняет использование приложения. Вот как вы можете отключить масштабирование в приложениях, но при этом оставить его включенным для Windows 10.
Отключить масштабирование в приложениях
Перво-наперво, если вы еще не используете масштабирование, но собираетесь его использовать, включите его и установите масштаб, соответствующий вашему экрану. Вы можете включить масштабирование в приложении «Настройки». Перейдите в группу настроек Система и выберите вкладку Экран.
Как только вы это сделаете, проверьте, какие приложения имеют проблемы с масштабированием. Чтобы отключить масштабирование для определенного приложения, вам необходимо сначала изучить способ доступа к нему, то есть ярлык приложения, который вы используете. Найдите его и щелкните его правой кнопкой мыши. В контекстном меню выберите «Свойства». Найдите вкладку «Совместимость». Если эта вкладка отсутствует, найдите EXE-файл приложения в папке установки. Он должен находиться в папке Program Files или Program Files (x86) на вашем диске Windows. Если вкладка все еще отсутствует, скорее всего, приложение не поддерживает масштабирование.
На вкладке «Совместимость» нажмите кнопку «Изменить настройки высокого разрешения».
В новом открывшемся окне включите параметр «Переопределить поведение масштабирования с высоким разрешением». Масштабирование выполняется с помощью параметра: ‘и откройте раскрывающийся список под ним. Выберите вариант «Система» и нажмите «ОК».
После внесения изменений в настройки масштабирования рекомендуется перезапустить приложение и вашу систему. Вышеупомянутый метод следует повторить для всех приложений. Это все, что нужно сделать. Похоже, вы не можете отключить масштабирование для приложений UWP. Этот метод работает только для настольных приложений, хотя вы обнаружите, что они, как правило, плохо работают с масштабированием Windows 10.
Если у вас возникли проблемы с приложением UWP, т. Е. Размытым текстом или переполненными элементами пользовательского интерфейса, это может быть проблема с самим приложением. Вы можете перейти к расширенным настройкам масштабирования в приложении «Настройки» и позволить Windows 10 исправить эти проблемы. Это может иметь значение, а может и не иметь значения.
Как настроить масштабирование дисплея в Windows 10 для мониторов с высоким разрешением
Не секрет, что Windows плохо смотрится на мониторах с высоким разрешением, с высоким разрешением и настройками с несколькими мониторами. Microsoft несколько раз пыталась решить эту проблему с помощью обновлений, но все еще не так хорошо, как должно быть.
Итак, хотя с момента появления Windows 10 на рынке прошло шесть лет, пользователям приходится выполнять большую ручную настройку, чтобы визуальные эффекты выглядели хорошо на мониторах с высоким разрешением.
Здесь на помощь приходит масштабирование дисплея. Давайте посмотрим, как вы можете масштабировать визуальные эффекты в Windows, чтобы они лучше соответствовали вашему дисплею.
Что такое масштабирование дисплея?
Масштабирование дисплея относится к настройке элементов пользовательского интерфейса, таких как изображения и текст, таким образом, чтобы они хорошо смотрелись на вашем дисплее. На мониторах с высоким разрешением экрана масштабирование дисплея направлено на то, чтобы текст выглядел более резким, а изображения — четкими.
Все это звучит хорошо на бумаге, но Windows оставляет желать лучшего, когда дело доходит до масштабирования дисплея.
Традиционно программы масштабируют свои визуальные эффекты в соответствии с присутствующими пикселями. Например, на мониторе 1080p программное обеспечение масштабируется, чтобы отображать визуальные эффекты примерно до двух миллионов пикселей. На мониторе 4K те же визуальные эффекты должны быть доведены до восьми миллионов пикселей.
И здесь начинают появляться проблемы.
Во-вторых, визуальные эффекты плохо масштабируются, если вы запускаете несколько мониторов, особенно если мониторы имеют разные размеры и разрешения.
Связанный: Как использовать свой ноутбук как внешний монитор
Чтобы решить проблему, связанную с попиксельным масштабированием, Microsoft представила масштабирование Bitmap. Масштабирование растрового изображения работает так же, как цифровое масштабирование. По сути, Windows берет визуальные эффекты и распределяет их по дисплею. Вы можете себе представить, как это может привести к потере ясности и детализации.
К счастью, если у вас возникли проблемы с масштабированием дисплея, вы можете настроить параметры вручную по своему вкусу.
Масштабирование дисплея на одном мониторе
Чтобы настроить масштаб отображения на одном мониторе, нажмите клавиши Windows + I, чтобы открыть панель настроек, введите display в строке поиска и выберите первый результат. Это откроет панель настроек дисплея.
Теперь в разделе «Разрешение экрана» убедитесь, что выбрано собственное разрешение вашего дисплея. Например, если вы используете монитор 1080p, выберите 1920 x 1080 из раскрывающегося списка.
Затем загляните в раздел «Масштаб и макет» и посмотрите, какой коэффициент масштабирования Windows применяет по умолчанию. Для монитора 1080p коэффициент масштабирования установлен на 100%. Для монитора 4K коэффициент часто устанавливается равным 150%. Если вас не устраивает коэффициент по умолчанию, измените его по своему вкусу.
Если вы хотите увеличить визуальные эффекты, увеличьте коэффициент. И наоборот, если вы хотите сделать элементы пользовательского интерфейса меньше, уменьшите их.
После изменения коэффициента обязательно каждый раз выходить из системы и входить в систему. Некоторые части Windows не отражают изменения, внесенные в масштабирование, пока вы не выйдете из системы и не войдете в нее снова.
Если ни один из параметров масштабирования не работает для вас достаточно хорошо, нажмите «Дополнительные параметры масштабирования».
На панели дополнительных настроек выберите «Разрешить Windows пытаться исправить приложения, чтобы они не были размытыми». Как следует из названия, этот параметр включает автоматическое масштабирование дисплея. Это может работать не для всех приложений, особенно если вы используете несколько мониторов.
Наконец, если ничего не работает, вы можете попробовать ввести произвольный размер масштабирования в поле под Пользовательским масштабированием. Помните, всегда сначала пробуйте небольшие приращения, так как вы можете установить большой размер масштабирования, что затруднит вам поиск настройки позже.
Параметры масштабирования дисплея для дискретных графических процессоров
Помимо встроенных настроек масштабирования в Windows, вы также можете настроить дополнительные параметры, если у вас есть незаметный графический процессор AMD или Nvidia. Поскольку эти настройки больше ориентированы на геймеров, они вряд ли решат какие-либо серьезные проблемы с масштабированием.
Масштабирование дисплея для графических процессоров AMD
Если вы используете графический процессор AMD, щелкните правой кнопкой мыши в любом месте рабочего стола и выберите AMD Radeon Software. Перейдите на вкладку Display. В разделе «Параметры отображения» убедитесь, что масштабирование графического процессора отключено, а для параметра «Режим масштабирования» установлено значение «Сохранять соотношение сторон».
Масштабирование графического процессора используется для масштабирования ретро-игр до исходного разрешения экрана. Включение этого параметра практически не приносит пользы для повседневного использования, но приводит к задержке ввода. Так что включайте его, только если собираетесь играть в ретро-игры.
С другой стороны, режим масштабирования определяет способ отображения изображения на экране. Сохранить соотношение сторон сохраняет соотношение сторон изображения и не растягивает изображение до размеров экрана. Это приведет к появлению черных полос вокруг изображения.
Центр отключает все виды масштабирования изображения и просто центрирует изображение. Еще раз, черные полосы появятся вокруг изображения, если разрешение не соответствует вашему дисплею.
Наконец, режим масштабирования Full Panel растягивает изображение, чтобы заполнить экран.
Разрешение дисплея для графических процессоров Nvidia
Процедура для графических процессоров Nvidia почти такая же, как для графических процессоров AMD. Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите Панель управления Nvidia.
Как только вы войдете, перейдите к разделу «Настроить размер и положение рабочего стола», расположенному слева в разделе «Дисплей».
Затем выберите нужный режим масштабирования. Выберите соотношение сторон, если вы не уверены, что выбрать, поскольку это значение по умолчанию.
Масштабирование дисплея для настройки нескольких мониторов
Если у вас несколько мониторов разных размеров и разрешений, вам придется настраивать каждый монитор индивидуально. В противном случае вы можете получить правильное масштабирование на одном дисплее и беспорядок на другом.
Связанный: Как использовать Chromecast в качестве второго монитора компьютера
Итак, нажмите Windows Key + I, чтобы открыть панель настроек, введите display в строке поиска и выберите первый результат. Находясь на панели «Настройки», выберите в верхней части страницы, какой монитор вы хотите настроить. Остальные шаги такие же, как указано выше.
Не забудьте выйти и войти в систему после изменения настроек.
После настройки монитора перетащите окно на этот монитор и посмотрите, все ли в порядке.
Сделайте то же самое для всех мониторов.
Масштабирование дисплея для отдельных программ
Даже после того, как вы настроили все возможные настройки, связанные с масштабированием дисплея, некоторые программы по-прежнему могут плохо масштабироваться. Например, на мониторах 4K программы обычно имеют крошечный нечеткий текст. Чтобы решить эту проблему, вы можете оставить масштабирование самой программе.
Перейдите в папку, в которой установлена программа, затем щелкните правой кнопкой мыши значок программы и выберите «Свойства».
Затем нажмите «Совместимость», а затем нажмите «Изменить настройки высокого разрешения».
Во всплывающем диалоговом окне выберите «Переопределить поведение масштабирования с высоким разрешением» и выберите «Приложение» в раскрывающемся списке. Параметр «Приложение» позволяет программе обходить масштабирование всей системы и определять собственные параметры масштабирования для мониторов с высоким разрешением.
Простой способ улучшить масштабирование дисплея в Windows 10
Хотя настройки масштабирования не решают всех проблем, которые возникают на мониторах с высоким разрешением, вы можете исправить многие проблемы, выбрав настройки по умолчанию. Windows прошла долгий путь с момента своего выпуска. И ситуация будет улучшаться по мере того, как все больше и больше людей будут использовать мониторы с высоким разрешением и несколько мониторов.
Высокие значения DPI в ОС Windows
Windows, начиная с Vista, предоставляет два механизма для адаптации приложений к мониторам с высокой плотностью пикселей (точек на дюйм, DPI): увеличенные системные шрифты и полномасштабное увеличение окон. К сожалению, попытка заставить некоторые ваши приложения работать в каком либо из режимов может оказаться безуспешной, благодаря сочетанию нерадивых разработчиков и плохих решений принятых Microsoft.
От переводчика
Методы масштабирования
Чтобы исправить ситуацию, Microsoft решила, что неплохо встроить какой-нибудь метод масштабирование в Windows. Один из двух методов описанных ниже (Windows XP или Vista), применяется когда пользователь устанавливает DPI со значением выше чем стандартные 96 точек на дюйм. Оба метода пытаются увеличить размер элементов изображения.
Масштабирование в стиле Windows XP
Первый из этих методов, как можно догадаться, появился в Windows XP. Этот метод, на самом деле, не является методом масштабирования приложений с графическим интерфейсом как таковой. Масштабируются, при более высоких настройках DPI, только системные шрифты и некоторые элементы пользовательского интерфейса системы (я бы назвал его «метод НЕ масштабирования» в стиле Windows XP).
Все остальные элементы приложений по-прежнему отображаются в масштабе 1:1. Единственной разницей в их внешнем виде является то, что любой текст и некоторые элементы GUI, выводимые с помощью системных функций, вдруг становиться больше. Например, текст на кнопках. Это вызывает очевидные проблемы которые мы обсудим чуть позже.
Масштабирование в стиле Windows Vista или DPI виртуализация
Windows Vista представила второй вариант со странным названием, «масштабирование дисплея», без каких-либо уточнений, видимо, чтобы окончательно запутать пользователей. Мы будем использовать более описательное имя – метод DPI виртуализации. Когда этот метод включен, Windows по-прежнему выполняет масштабирование в стиле Windows XP. Также как и прежде размеры всех системных шрифтов и некоторых элементов интерфейса системы увеличиваются.
Разница в том, что приложения, которые могут правильно использовать высокие значения DPI, должны сообщить об этом Windows. Такие приложения должны установить новый DPI-Aware флаг, либо путем вызова функции Win32 API «SetProcessDPIAware», или, предпочтительно, путем встраивания манифеста с флагом dpiAware. А вот если у приложения отсутствует DPI-Aware флаг, Windows ведет себя по другому, сначала она формирует внутреннее отображение в масштабе 96 точек на дюйм (эмулируя для приложения DPI равный 96), а затем, масштабирует полученное изображение в соответствие с текущими настройками DPI перед выводом на экран.
Это было бы фантастическим метод масштабирования если бы все наши мониторы имели плотность пикселей последних аппаратов iPhones (326 точек на дюйм). К сожалению это не так. Окна приложений масштабированные таким образом выглядят чересчур размыто, при популярном разрешении 120 точек на дюйм (@homm это не разрешение, кстати). Поэтому, Microsoft по умолчанию отключает DPI виртуализацию, если вы выберете плотность пикселей меньше или равную 120 DPI.
Как изменить установки DPI
В Windows 7/8, откройте «Панель управления», a затем выберите «Оформление и персонализация», затем «Экран», и, наконец, выберите «Установить размер шрифта (DPI)» (Windows 7) или «Пользовательские параметры размера» (Windows 8). Вы увидите следующее диалоговое окно (Windows 7, в Windows 8 почти идентично):
В раскрывающимся списке можно выбрать нужную настройку DPI в процентном соотношении, где 100% соответствует 96 DPI, 125% — как на скриншоте, соответствует 120 точкам на дюйм (можно более точно записать значение вручную). До Windows 8 фактическое значение DPI («пикселей на дюйм») отображалось рядом с размером системного шрифта. Windows 8, по непонятным причинам, не показывает значение DPI, так что вы должны рассчитать его самостоятельно.
Также вы можете приложить линейку (у которой есть шкала в дюймах) к экрану, и пытаться совместить маркировку на ней с маркировкой на экране, изменяя значение в раскрывающимся списке. Флажок, обведенный красным внизу, определяет, следует ли использовать только масштабирование в стиле Windows XP, или также новый способ DPI виртуализации. Если флажок не отмечен, как на скриншоте, то DPI виртуализация включена.
Декламация. Это диалоговое окно пример интерфейса не дружественного к пользователю. На первый взгляд кажется, что это флажок для отключения масштабирования в стиле Windows XP. Но этот метод масштабирования (который только увеличивает системные шрифты и другие элементы пользовательского интерфейса системы — масштабирование Windows XP) всегда включается при выборе высокого значения DPI. На самом деле этот флажок управляет, будет ли этот метод единственным (Использовать только масштабы в стиле Windows XP), или также будет применен метод «DPI виртуализации» для приложений, которые не имеют DPI-Aware флага. Так что этот флажок не контролирует метод масштабирования указанный в его название, а контролирует другой метод масштабирования, нигде не упомянутый — и позволяет использовать новый метод, когда флажок снят!
Ошибка в Windows 8. В дополнение к этому, в Windows 8 это диалоговое окно с ошибкой. Как правило, все работает как и в Windows 7, но состояние флажка не сохраняется на значениях DPI 150% и выше. Когда вы устанавливаете этот флажок, «DPI виртуализация» правильно отключается. Тем не менее, сам флажок остается не отмеченным, когда вы в следующий раз открываете этот диалог.
Изменения в Windows 8.1, или почему все размыто?
В Windows 8.1 флажок для масштабирования в стиле Windows XP исчез, и теперь «DPI виртуализация» никогда, не используется при значениях DPI до 120 включительно, но всегда используется при более высоких значениях для тех программ, у которых отсутствует DPI-Aware флаг. Если некоторые приложения кажутся вам нечеткими, необходимо вручную отключить для них DPI виртуализацию.
Windows 8.1 позволяет использовать несколько мониторов с разным значением DPI. Однако эта функция, также заставляет использовать «DPI виртуализацию» для традиционных приложений, которые перемещаются между мониторами с разными значениями DPI. Чтобы этого избежать, можно отключить в настройках «DPI масштабирование», используя новую опцию «Я хочу выбрать один масштаб для всех дисплеев».
Также Windows 8.1 добавляет специальный переключатель для настройки 200% и новый API, чтобы разработчики могли выборочно отключать «DPI виртуализацию».
Помогите, мои системные шрифты не правильного размера!
Иногда, после изменения настроек DPI, вы можете заметить что некоторые системные шрифты стали слишком большими или слишком маленькими для новых установок. Вероятной причиной является то, что вы используете пользовательскую тему рабочего стола на основе ваших старых настроек DPI. Windows не масштабирует шрифты пользовательской темы.
Если вы на самом деле создали пользовательскую тему рабочего стола и хотите сохранить её, вам придется самостоятельно адаптировать шрифты к новым настройкам DPI. Однако, Windows имеет раздражающую привычку «услужливо» создавать пользовательские темы без вашего ведома, по какой-либо причине. Так что, если вы никогда не создавали пользовательскую тему рабочего стола просто удалите её и вернитесь к стандартной теме.
В Windows 7/8, откройте Панель управления, выберите «Оформление и персонализация», а затем «Персонализация». Если вы видите выбранную запись в строке «Мои темы», это означает, что ОС Windows использует тему пользователя, системные шрифты которой Windows не будет масштабировать. Выберите стандартную тему, например, первую запись в разделе «Темы Aero» (Windows 7) или «Windows» «Темы по умолчанию» (Windows 8) и удалите нежелательные записи в разделе «Мои темы». Теперь, все системные шрифты должны отображаться правильно.
Типы приложений, как они масштабируются (или не масштабируются)
Теперь давайте рассмотрим какие методы должны использоваться для существующих Windows приложений при высоких значениях DPI. Следующая таблица обобщающая, позже мы рассмотрим различные случаи более подробно.
DPI-Aware флаг не установлен | DPI-Aware флаг установлен | |
Не DPI-Aware | Нужно использовать DPI виртуализацию | Нужны исправления от разработчиков |
DPI-Aware | Нужно использовать масштабирование в стиле Windows XP | Всегда масштабируется правильно |
Приложения вообще не заботящиеся о DPI — это либо очень старые или плохо написанные, но, тем не менее, по-прежнему используемые. Одним известным примером является ITunes от Apple для Windows. Здесь разработчики используют системные шрифты для GUI и, не заботясь о фактических размерах шрифта, они жестко привязывают размеры окон к разрешению 96 DPI, естественно искажая GUI, когда при более высоких значениях DPI увеличиваются размеры шрифтов.
Такие приложения требуют нового метод масштабирования «виртуализации DPI», к сожалению, это часто делает интерфейс размытым. В противном случае вы столкнетесь с проблемами начиная, от обрезания текста до перекрытия элементов контроля, иногда, делая GUI полностью непригодным (к счастью, это, случается редко). За эти годы я собрал несколько образцов скриншотов не корректных приложений.
разрешение 150% (144 DPI)
Приложения умеющие подстраивать свой GUI под различные значения DPI, имеющие DPI-Aware флаг — Это новейший тип приложений которые полностью беспроблемны, независимо от настроек DPI. DPI-Aware флаг установлен автоматически для Windows Presentation Foundation (WPF) и GDI+ приложений, так как эти APIs предоставляют встроенные средства масштабирования. Разработчикам использующим старый GDI API и (удивительно) Windows Forms, нужно вручную помечать свои DPI-Aware приложения.
Приложения не приспособленные к изменению DPI, но имеющие DPI-Aware флаг — это еще хуже чем полностью игнорирование значения DPI. В примерах вы найдете GUI приложений, хорошо масштабируемых вплоть до 120 DPI, но не выше, или приложений JavaFX. Тут мы уже ничего сделать не можем, т.к. у нас нет возможности заставить Windows использовать DPI виртуализацию, для таких программ. После того как DPI-Aware флаг установлен, приложение должно масштабировать себя самостоятельно. Мы можем только «пилить» разработчиков исправить их продукт — или использовать что-то другое.
Выбор метода масштабирования для ваших приложений
После того как вы решили что вы хотите использовать высокое значение DPI, ваш выбор метода масштабирования зависит от приложений в которых вы работаете. Имейте в виду, что, отключить «DPI виртуализацию» означает, установить флажок (check box) с некорректным названием «Использовать масштабы в стиле Windows XP» и наоборот.
Напоминаем, что в Windows 8.1 уже нет возможности выбора в этом вопросе. Если вы работаете при разрешении в 120 точек на дюйм (125%), каждая программа будет вынуждена использовать масштабирование в стиле Windows XP, a если вы работаете с более высоким разрешением, каждая программа, которая не является DPI-Aware, будет использовать по умолчанию «DPI виртуализацию».
Отказ от DPI виртуализации для отдельных приложений
После того как вы решили включить DPI виртуализацию или вы работаете в Windows 8.1, с разрешением более чем 120 точек на дюйм, вы можете проверить систему на предмет наличия DPI-Aware приложений, которые не имеют соответствующий флаг. И вернуть им возможность использовать масштабирование в стиле Windows XP, для которого они предназначены. Есть два способа сделать это, первый работает только для 32-разрядных приложений, второй универсален и подходит также для 64-битных приложений.
32-разрядные приложения — Это просто: щелкните правой кнопкой мыши на исполняемом файле в Проводнике Windows, выберите диалоговое окно «Свойства», перейдите на вкладку «Совместимость» и установите флажок «Отключить масштабирование изображения при высоком разрешении экрана». Вот и все, в Windows 8.1 это также работает для 64-битных приложений.
64-разрядные приложения — Без всякой видимой причины, возможно чтобы позлить пользователей 64-битных приложений, в Windows 8 и более ранних, упомянутый выше флажок, для 64-разрядных приложений отключен, хотя сам вариант вполне функционален, если внести изменения непосредственно реестр! Так что, запустите редактор реестра и перейдите к этому ключу:
Теперь добавьте строковое значение (REG_SZ), чье имя является полным путем к исполняемому файлу приложения и значением которого является HIGHDPIAWARE. Я рекомендую, чтобы вы сначала изменили несколько 32-битных приложений, как описано выше, чтобы вы могли увидеть некоторые примеры значений в этом ключе реестра.
Мы рассмотрели, как можно использовать настройки DPI на Windows Vista и более поздних версиях. И если вы когда-нибудь задумывались, для чего предназначена опция совместимости — «Отключить масштабирование изображения при высоком разрешении экрана». И почему она ничего не делает на вашей системе, теперь вы знаете: она эффективна, только если у вас включена общесистемная опция «DPI виртуализации» и только для приложений, которые не устанавливают DPI-Aware флаг должным образом, но при этом корректно используют масштабирование в стиле Windows XP.
Дальнейшее чтение
For more information about both scaling methods from a developer perspective, see the MSDN article Writing High-DPI Win32 Applications. This content has moved to Writing DPI-Aware Desktop and Win32 Applications. This lengthy article also contains a sample manifest to declare an application as DPI-aware, as well as sample screenshots for the various scaling methods and tips on display scaling in native code.
Unfortunately, the article currently only covers Windows XP through 7. See Writing DPI-Aware Desktop Applications in Windows 8.1 Preview (Word DOCX) and Chuck Walbourn’s Manifest Madness for additional information on Windows 8 and 8.1.
Outside of Microsoft, Gastón Hillar has published two articles targeting Windows 8.1 at Dr. Dobb’s. Part 1 covers basic concepts, and part 2 shows C/C++ sample code for the Win32 API.