Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 177 178 179 180 181 182 < 183 > 184 185 186 187 188 189 .. 473 >> Следующая

Хотя об анимационных эффектах подробно будет рассказываться в главе 21, получить общее представление о них можно, рассмотрев простой пример. Для этого ниже показан триггер событий, который ожидает события MouseEnter и затем анимирует свойство FontSize кнопки, увеличивая размер шрифта до 22 единиц за 0,2 секунды.
<Style x:Key="BigFontButtonStyle">
<Style.Setters>
</Style.Setters>
<Style.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Duration="0:0:0.2"
Storyboard.TargetProperty="FontSize"
To="22" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
В XAML каждый анимационный эффект должен определяться в элементе Storyboard, который предоставляет временную шкалу для анимации. Внутри элемента Storyboard определяется объект или объекты анимации, которые должны использоваться. Каждый
Book_Pro_WPF-2.mdb 356 19.05.2008 18:10:23
Стили 357
объект анимации выполняет, по сути, одну и ту же задачу: он изменяет свойство зависимостей на протяжении какого-то периода времени.
В данном примере применяется заготовленный класс анимации под названием DoubleAnimation (который, как и все классы анимации, расположен в пространстве имен System.Windows.Media.Animation). Класс DoubleAnimation умеет постепенно изменять любое двойное значение (вроде значения FontSize) для получения целевого результата за определенный период времени. Поскольку двойное значение изменяется небольшими частями, на вид шрифт увеличивается постепенно. Фактический размер изменения зависит от общего количества времени и общего объема изменений, которые требуется внести. В данном примере размер шрифта изменяется с текущего значения до 22 единиц за 0,2 секунды. (За счет корректировки свойств класса DoubleAnimation можно настроить эти детали более точно и создать анимацию с ускорением или замедлением.)
В отличие от триггеров свойств, действие триггеров событий нужно реверсировать, если требуется, чтобы элемент возвращался в свое исходное состояние. (Дело в том, что по умолчанию завершенная анимация остается активной, сохраняя для свойства последнее значение. Подробнее о том, как работает эта система, будет рассказываться в главе 21.)
Для возврата размеров шрифта в исходное состояние в этом примере в стиле используется триггер событий, который реагирует на событие MouseLeave и уменьшает шрифт до исходного размера за две секунды. Указывать целевой размер шрифта в данном случае не нужно — если таковой не указывается, WPF предполагает, что кнопке требуется вернуть тот исходной размер шрифта, который у нее был перед началом выполнения анимации.
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration=" 0:0 :1 "
Storyboard.TargetProperty="FontSize" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
Интересно, что также можно делать и так, чтобы анимация выполнялась при достижении свойством зависимости определенного значения. Это удобно, если требуется запускать анимацию, а подходящего для этого события нет.
Для применения этого приема необходим триггер свойств, о котором рассказывалось в предыдущем разделе. Предоставлять для него объекты Setter не нужно. Вместо этого следует установить свойства Trigger.EnterActions и Trigger.ExitActions. Оба эти свойства в качестве значения принимают коллекцию действий наподобие действия BeginStoryboard, которое запускает анимацию. Действия EnterActions выполняются при достижении свойством указанного значения, а действия ExitActions — при смене свойством указанного значения на какое-то другое.
Более подробно об использовании триггеров событий и триггеров свойств для запуска анимационных эффектов речь пойдет в главе 21.
Book_Pro_WPF-2.mdb 357 19.05.2008 18:10:23
358 Глава 12
Резюме
В этой главе было показано, как стили позволяют определять именованные наборы значений свойств и легко применять их к соответствующему элементу.
Стили являются ключевым компонентом, который позволяет поддерживать множество других функциональных возможностей WPF. Например, стили предоставляют возможность применять новые управляющие шаблоны к ряду элементов управления; использовать различное форматирование в зависимости от текущей темы системы; динамически изменять обложку приложения и улучшать внешний вид элементов с помощью автоматических анимационных эффектов. Более подробно эти приемы будут рассматриваться позже в этой книге (шаблоны элементов управления, темы и обложки приложений — в главе 15, анимационные эффекты — в главе 21). Но сначала нужно ознакомиться с еще одной важной темой в WPF — богатыми возможностями двумерного рисования.
Book_Pro_WPF-2.mdb 358 19.05.2008 18:10:23
ГЛАВА 13
Фигуры, трансформации и кисти
В главе 1, при первом знакомстве с WPF, вы узнали, что эта платформа усилена совершенно новой графической моделью, которая одинаково легко использует предварительно построенные элементы управления и заказную графику, применяет аппаратное ускорение при обычном двумерном рисовании и поддерживает масштабируемые векторы поверх битовых карт.
Предыдущая << 1 .. 177 178 179 180 181 182 < 183 > 184 185 186 187 188 189 .. 473 >> Следующая