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

Другие вопросы по тегам