Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательский интерфейс Windows предоставляет множество красивых эффектов, анимаций и средств для различения. Однако удовлетворение ожиданий пользователей на производительность и настраиваемость по-прежнему является необходимой частью создания успешных приложений. Универсальная платформа Windows поддерживает большое, разнообразное семейство устройств, которые имеют различные функции и возможности. Чтобы обеспечить инклюзивное взаимодействие для всех пользователей, необходимо обеспечить масштабирование приложений на разных устройствах и соблюдать предпочтения пользователей. Адаптация пользовательского интерфейса может обеспечить эффективный способ использования возможностей устройства и обеспечить приятный и инклюзивный пользовательский интерфейс.
Адаптация пользовательского интерфейса — это широкая категория, охватывающая работу по созданию производительного и красивого пользовательского интерфейса в следующих областях:
- Учет и адаптация параметров пользователя для создания эффектов
- Настройка пользовательских настроек для анимаций
- Оптимизация пользовательского интерфейса для заданных возможностей оборудования
Здесь мы рассмотрим, как адаптировать эффекты и анимации с помощью визуального слоя в указанных выше областях, но есть много других средств для настройки приложения, чтобы обеспечить отличный пользовательский интерфейс. Руководства доступны о том, как настроить пользовательский интерфейс для различных устройств и создать адаптивный пользовательский интерфейс.
Параметры пользовательских эффектов
Пользователи могут настраивать возможности Windows по различным причинам, которые приложения должны уважать и адаптироваться. Одна область, которую пользователи могут контролировать, изменяет типы эффектов, которые они видят в своей системе.
Параметры эффектов прозрачности
Один из таких параметров воздействия, который можно настроить, — это включение и отключение эффектов прозрачности. Это можно найти в приложении "Параметры" в разделе "Персонализация" > "Цвета" или в приложении "Параметры" > "Специальные возможности" > "Экран".
Параметр прозрачности
При включении любой эффект, использующий прозрачность, будет отображаться должным образом. Это относится к Акрилу, HostBackdropBrush или любой пользовательской схеме эффектов, которая не полностью непрозрачная.
При отключении акриловый материал автоматически вернётся к сплошному цвету, так как акриловая кисть XAML по умолчанию прослушивает это событие. Здесь мы видим, что приложение калькулятора правильно возвращается к сплошному цвету, когда эффекты прозрачности не включены.
калькулятор
Однако для любых пользовательских эффектов приложению необходимо реагировать на свойство UISettings.AdvancedEffectsEnabled или событие AdvancedEffectsEnabledChanged и заменить граф эффектов, чтобы использовать эффект без прозрачности. Ниже приведен пример:
public MainPage()
{
var uisettings = new UISettings();
bool advancedEffects = uisettings.AdvancedEffectsEnabled;
uisettings.AdvancedEffectsEnabledChanged += Uisettings_AdvancedEffectsEnabledChanged;
}
private void Uisettings_AdvancedEffectsEnabledChanged(UISettings sender, object args)
{
// TODO respond to sender.AdvancedEffectsEnabled
}
Параметры анимации
Аналогичным образом приложения должны прослушивать и реагировать на свойство UISettings.AnimationsEnabled, чтобы обеспечить включение или отключение анимаций на основе параметров пользователей в параметрах > упрощение доступа > отображения.
Опция анимации
public MainPage()
{
var uisettings = new UISettings();
bool animationsEnabled = uisettings.AnimationsEnabled;
// TODO respond to animations settings
}
Использование возможностей API
Используя CompositionCapabilities API, вы можете определить, какие функции композиции доступны и выполняются на данном оборудовании, а также адаптировать дизайн, чтобы конечные пользователи могли получить производительность и красивый интерфейс на любом устройстве. API предоставляют средства для проверки возможностей аппаратной системы, чтобы реализовать грациозное масштабирование эффектов в различных форм-факторах. Это позволяет легко адаптировать приложение для создания красивого и удобного взаимодействия с конечным пользователем.
Этот API предоставляет методы и прослушиватель событий, который можно использовать для принятия решений по масштабированию эффекта для пользовательского интерфейса приложения. Эта функция определяет, насколько хорошо система может обрабатывать сложные операции композиции и отрисовки, а затем возвращает информацию в модели простого использования для разработчиков.
Использование возможностей композиции
Функции CompositionCapabilities уже используются для таких функций, как акриловый материал, где материал возвращается к более эффективному эффекту в зависимости от сценария и оборудования.
API можно добавить в существующий код несколькими простыми шагами.
Получите объект возможностей в конструкторе приложения.
_capabilities = CompositionCapabilities.GetForCurrentView();
Зарегистрируйте измененный прослушиватель событий для приложения.
_capabilities.Changed += HandleCapabilitiesChanged;
Добавьте содержимое в метод обратного вызова события для обработки различных уровней возможностей. Это может быть похоже на следующий шаг ниже.
При использовании эффектов сначала проверьте объект возможностей. Рекомендуется использовать условные проверки или операторы управления switch в зависимости от способа настройки эффектов.
if (_capabilities.AreEffectsSupported()) { // Add incremental effects updates here if (_capabilities.AreEffectsFast()) { // Add more advanced effects here where applicable } }
Полный пример кода можно найти в репозитории GitHub пользовательского интерфейса Windows
Быстрые и медленные эффекты
Основываясь на результатах из предоставленных методов AreEffectsSupported и AreEffectsFast в API CompositionCapabilities, приложение может решить заменить ресурсоемкие или неподдерживаемые эффекты на другие эффекты по своему выбору, оптимизированные для устройства. Некоторые эффекты, как известно, постоянно являются более ресурсоемкими, чем другие, и их следует использовать смешно, а другие эффекты можно использовать более свободно. Однако для всех эффектов следует использовать осторожность при цепочке и анимации, так как некоторые сценарии или сочетания могут изменить характеристики производительности графа эффектов. Ниже приведены некоторые примеры производительности для отдельных эффектов:
- Эффекты, которые, как известно, оказывают большое влияние на производительность: Gaussian Blur, Shadow Mask, BackDropBrush, HostBackDropBrush и Layer Visual. Они не рекомендуется использовать для устройств с низким уровнем (уровень компонентов 9.1-9.3)и следует использовать разумно на высокоуровневых устройствах.
- Эффекты, оказывающие среднее влияние на производительность, включают цветовую матрицу, некоторые режимы смешивания Blend Effect (Luminosity, Color, Saturation и Hue), SpotLight, SceneLightingEffect и (в зависимости от сценария) BorderEffect. Эти эффекты могут работать с определенными сценариями на устройствах низкого класса, но нужно проявлять осторожность при связывании и анимации. Мы рекомендуем ограничить использование двумя элементами или менее и анимировать только при переходах.
- Все остальные эффекты имеют незначительное влияние на производительность и работают во всех разумных сценариях при анимации и компоновке.