Основные принципы анимации в WinRT. Обои для рабочего стола

30.04.2019

Windows 7 анимирует почти все. Эти эффекты могут произвести впечатление на детей, но создают две проблемы для производительности. Первая - они замедляют движение визуальных элементов, увеличивая время открытия и закрытия окон, меню и полей списков, что, в свою очередь, превращает ваш компьютер в медлитель­ную черепаху. Вторая - они загружают процессор, который мог бы использоваться для открытия приложения, создания значка предварительного просмотра, загрузки сложных веб-страниц или обработки интенсивных для процессора задач.

Конечно, есть и другие настройки, которые влияют на общую производительность Windows, но настройки, управляющие визуальными эффектами, изменяются проще веет и сразу заставляют Windows работать и реагировать быстрее.

В Панели управления выберите раздел Система (System) и слева щелкните на ссыл­ке Дополнительные параметры системы (Advanced system settings) (или запустите SystemPropertiesAdvanced.exe). В разделе Быстродействие (Performance) выберите Параметры (Settings). Вкладка Визуальные эффекты (Visual Effects), содержит настройки, о которых мы поговорим.

К сожалению, четыре базовых варианта вводят пользователей в заблуждение. На­пример, функция Восстановить значения по умолчанию (Let Windows choose whaf s best for my computer) возвращает все настройки к значениям, выбранным маркетинговой службой Microsoft, чтобы продемонстрировать возможности Windows. Вариант Обеспечить наилучший вид (Adjust for best appearance) просто активирует все параме­тры, в то время как Обеспечить наилучшее быстродейавие (Adjust for best performance) просто отключает их.

В зависимости от возможностей видеокарты некоторые настройки можно слегка скорректировать.

  • Анимированные элементы управления и элементы внутри окна

Выключите, чтобы убрать эффект плавного исчезновения кнопок и вкладок в диалоговых окнах, эффект циклической пульсации на кнопках и исчезающие

стрелки полосы прокрутки. Кнопки будут подсвечиваться при наведении на них курсора мыши, но теперь они будут делать это без задержки.

  • Анимация окон при свертывании и развертывании

Управляет эффектами сжатия и растяжения при минимизации, восстановлении и максимизации окон. Включите этот параметр, чтобы видеть, куда окно исчезает, когда вы минимизируете его, или выключите, чтобы заставить окна появляться в конкретном месте.

  • Анимация в меню Пуск и Панели задач

Управляет анимированными выпадающими списками (см. главу 2), затуханием ярлыков с эскизами и выпадающими кнопками Панели задач. Выключите его, чтобы ускорить работу Панели задач. В ранних версиях Windows эта настройка называлась Скольжение кнопок Панели задач (Slide taskbar buttons).

Когда вы наводите курсор мыши на кнопку Панели задач для запуска приложе­ния, выше Панели задач появляется маленькое окно предварительного просмотра. Если навести курсор на это окно, видимые окна становятся полупрозрачными,за исключением окна, находящегося под указателем мыши. То же самое проис­ходит, если несколько раз нажать Aft+Tab и остановиться на одном окне.

Функция включает или отключает Предварительный просмотр Рабочего стола с Aero Peek (Preview desktop with Aero Peek) на вкладке Панель задач окна свойств Панели задач и меню Пуск, которое делает все окна полупрозрачными, когда вы наводите указатель мыши на кнопку Показать Рабочий стол (show desktop), чтобы можно было видеть Рабочий стол.

Эта функция используется, только когда вы наводите указатель мыши на кон­кретные места, ее работа должна заметно сказаться на производительности, толь­ко если у вас сильно устаревшая видеокарта. Выключите ее, если вам кажется, что Windows спотыкается всякий раз, когда курсор попадает на Панель задач, или если вас это раздражает.

  • Включение композиции Рабочего стола

Этот неопределенно названный параметр - одно из главных мест, влияющих на производительность. Исправить ситуацию просто, но только если вы не хотите видеть эффект стекла

Основные принципы анимации

На первый взгляд кажется, что анимации больше нужны программистам, работающим над играми иди моделированием физических процессов. Разве они нужна в спокойных, почтенных бизнес-приложениях?

Однако анимация играет в приложениях Windows 8 более важную роль, чем может показаться. Позже эта тема будет раскрыта, когда мы рассмотрим использование XAML для создания объектов ControlTemplate (шаблонов), полностью переопределяющих внешний вид элементов управления. И хотя самым важным аспектом ControlTemplate является визуальное дерево, шаблон также должен описывать изменение внешнего вида элемента управления в некоторых условиях. Например, элемент управления Button может выделяться при нажатии или окрашиваться в серый цвет при блокировке. Все эти изменения в оформлении ControlTemplate определяются как анимации - даже если изменение происходит мгновенно и мало похоже на анимацию.

Анимации также используются для определения переходов между разными представлениями приложения или перемещениями элементов в ходе внесения изменений в коллекции. Попробуйте переместить плитку на начальном экране из одного места в другое - вы увидите, как соседние плитки перемещаются в ответ. Все это делается с помощью анимаций, которые играют важную роль в динамичной эстетике Windows 8. Во многих современных приложениях, таких, например, как программа для изучения языков программирования pascal abc , анимации используются для расширения возможностей пользовательского интерфейса.

Пространство имен Windows.UI.Xaml.Media.Animation

В статье «Таймеры и анимации в WinRT» было показано, как организовать анимацию объектов с использованием события CompositionTarget.Rendering - прием, который я назвал «ручной» анимацией. Хотя ручная анимация может быть достаточно мощной, у нее есть свои недостатки. Метод обратного вызова всегда выполняется в потоке пользовательского интерфейса, а это означает, что анимация может замедлить реакцию программы на ввод пользователя.

Кроме того, анимации, продемонстрированные с CompositionTarget.Rendering, были полностью линейными, то есть линейно увеличивали или уменьшали некоторое значение с течением времени. Часто небольшое изменение темпа анимации делает ее более приятной для глаза; обычно анимация ускоряется в начале и замедляется в конце, иногда с небольшим «обратным ходом» для пущего реализма. Разумеется, такие анимации тоже можно выполнить с использованием CompositionTarget.Rendering, но организовать необходимые вычисления может быть непросто.

В последующих примерах будут использоваться встроенные средства анимации Windows Runtime, состоящие из 71 класса, 4 перечислений и 2 структур, объединенных в пространство имен Windows.UI.Xaml.Media.Animation . Эти анимации часто выполняются в фоновых потоках и поддерживают ряд возможностей для реализации нетривиальных эффектов. Очень часто анимации полностью определяются в XAML, а затем инициируются из кода или (в одном особом, но распространенном случае) из XAML.

Конечно, сама идея освоения средств анимации из 71 класса выглядит устрашающе. К счастью, эти классы разделены на несколько общих категорий, и к концу прочтения материала вы будете полностью понимать структуру пространства имен.

Анимация основана на изменениях некоторого свойства объекта. Это свойство часто называется «целевым свойством» анимации . Анимации Windows Runtime требуют, чтобы целевое свойство поддерживалось свойством зависимости, а следовательно, определялось в классе, производном от DependencyObject.

В некоторых графических средах поддерживаются кадровые анимации, у которых темп анимации определяется частотой смены кадров экрана. Различия в частоте смены кадров на разных аппаратных платформах могут привести к искажению темпа анимации. Анимации Windows Runtime относятся к категории синхронных, то есть выполняются по истечении фактических интервалов времени: секунд и миллисекунд.

Что произойдет, если поток, в котором выполняется анимация, должен выполнить некоторую работу и анимация пропустит несколько тактов? Кадровая анимация обычно продолжается с того места, в котором она была приостановлена. Синхронная анимация Windows Runtime подстраивается под текущее время и продолжается с того состояния, в котором она должна находиться.

Простой пример использования анимаций

Начнем с анимации свойства FontSize элемента TextBlock. Следующий проект содержит панель Grid из двух строк с полем TextBlock и кнопкой Button для запуска анимации. Очень часто анимации определяются в секции Resources корневого элемента файла XAML. Простая анимация состоит из объектов Storyboard и DoubleAnimation :

Похожие статьи