WinJs: игнорировать масштабирование шрифтов из Windows
Я разработал приложение WinJs для Surface pro 4. Приложение работает в полноэкранном режиме и имеет разрешение экрана 2736x1824 (разрешение поверхности).
Теперь, когда я запускаю приложение на поверхности, масштабирование DPI вступает в игру и портит мой макет.
Есть ли способ отключить масштабирование для приложения?
Я пробовал:
Windows.UI.ViewManagement.ApplicationViewScaling.trySetDisableLayoutScaling(true);
но это не похоже на работу.
2 ответа
На самом деле, создание макета вашего приложения только для одного разрешения, особенно для такого большого разрешения, не очень хорошая идея, поскольку приложение может работать на устройстве с разрешением, например, 1920x1080, где даже с отключенным масштабированием DPI ваш макет будет испорчен.
Поэтому я рекомендую сделать макет приложения адаптивным, чтобы он выглядел правильно при любом разрешении.
Не уверен, что вы все еще смотрите на эту проблему, но я обнаружил, что код, который вы видите повсюду, на самом деле только для XBox ( ссылка на документы)
И разработчики Microsoft уже некоторое время говорят, что это пользовательская настройка, и они не планируют разрешать вам ds( ссылка на форум)
Вы можете обнаружить значение масштабирования, хотя с ResolutionScale
( docsLink)
Windows.Graphics.Display.DisplayInformation.getForCurrentView().resolutionScale
Вот ссылка на образец, который обнаруживает его и корректирует.
Итак, что вы можете сделать (и то, что я сделал), было, где необходимо, я использовал шкалу CSS, чтобы настроить систему в соответствии. Большая часть моего приложения отзывчива, так что это не имеет значения, но если вы используете iFrame и устанавливаете его шириной 1000 пикселей с этим масштабным коэффициентом, он на самом деле будет 1400 пикселей или даже 1800 пикселей в ширину и полностью обрезан.
У меня есть слушатели, настроенные на события изменения размера, и просто настраиваюсь по мере необходимости
Надеюсь, это поможет!
-Dennis