Как заставить приложение масштабироваться с высоким разрешением?
Притворись, что есть приложение, разработчики которого проявили его как осведомленный с высоким разрешением, когда это действительно не так. Как я могу заставить dpi-масштабирование?
Притворись, что есть заявление, что Microsoft применила «
HighDpiAware
» прокладку совместимости, когда приложения на самом деле нет. Как я могу заставить dpi-масштабирование?
Как заставить Windows применять dpi-масштабирование к приложению?
Изменить: Что такое масштабирование с высоким разрешением?
Не все пользователи используют Windows со скоростью 96 точек на дюйм. Предполагается, что не каждая кнопка имеет размер 75x23 пикселя, не каждая панель инструментов имеет высоту 25 пикселей, и не каждый глиф в виде дерева имеет размер 16x16. Если пользователь выбрал другую настройку dpi для Windows, вам нужно все масштабировать соответствующим образом.
Проблема в том, что почти никто из разработчиков не справляется со своей задачей, хорошо обрабатывая настройки с высоким разрешением. В лучшем случае все останется «одного размера», а это значит, что каждый кажется крошечным . В худшем случае формы отображаются неправильно, текст обрезается, а элементы управления не видны.
Начиная с Windows Vista и используя возможности Desktop Composition, Microsoft разочаровалась в том, что разработчики выполняют свою работу, а теперь лгут приложениям. Они сообщают приложениям, что пользователь работает с разрешением 96 точек на дюйм. Затем Windows использует видеокарту и Композицию рабочего стола для масштабирования форм.
Pro: содержание формы будет иметь хороший читаемый размер.
Против: все будет немного нечетко.
Эта функция масштабирования с высоким разрешением работает только по усмотрению пользователя и требует:
- Windows Vista или новее
- Композиция рабочего стола должна быть включена
- пользователю отключить «Использовать масштабирование в стиле Windows XP»
- пользователь не должен отключать масштабирование для вашего приложения
Как разработчик, вы можете отказаться от масштабирования с высоким разрешением; если вы приложили все усилия, чтобы написать свое приложение правильно, и вы знаете, что вы будете правильно работать с высоким разрешением. Вы отказываетесь от этого масштабирования, добавляя запись манифеста в свой исполняемый файл, заявляя, что вы « осведомлены о высоком разрешении ».
Вопрос о том, как заставить ваше приложение уважать предпочтения пользователя (включая шрифт, размер шрифта и настройку dpi), является вопросом для stack overflow
. Как и синтаксис для записи манифеста, декларирующей ваше « осведомленность с высоким разрешением »
Этот вопрос для суперпользователя заключается в том, как игнорировать разработчика, который пошел дальше и добавил запись манифеста с высоким разрешением, когда на самом деле приложение не поддерживает высокое разрешение. Они сказали Windows отключить масштабирование, но на самом деле они не тестировали приложение. Существует программное обеспечение с записью манифеста с «высоким разрешением на дюйм», и теперь приложение не может использоваться под «большими шрифтами» (например, 120 точек на дюйм).