Главная » Silverlight » Анимация раскрашивания пикселей

0

В главе 9 рассмотрены классы раскрашивания пикселей — низкоуровневые проце­дуры, позволяющие применять к элементам визуальные эффекты размывания, сияния, зернистости и т.д. Эффекты раскрашивания интересны, но сами по себе не очень полез­ны. Однако в сочетании с анимацией они предоставляют много возможностей. Их можно использовать для создания привлекательных переходов (например, размывания скры­ваемых элементов) и впечатляющих интерактивных эффектов (например, включения сияния кнопки, когда пользователь наводит на нее указатель). Что лучше всего, аними- ровать свойства классов раскрашивания так же легко, как любых других классов.

На рис. 10.10 показана страница с рядом размытых кнопок (данный пример почти полностью совпадает с предыдущим, в котором кнопка поворачивалась, см. рис. 10.7). Когда пользователь наводит указатель на одну из кнопок, к ней подключается анима­ция, которая плавно уменьшает радиус размытости до О. Создается впечатление, будто кнопка попадает в фокус оптического прибора.

Рис. 10.10.

Разметка элемента почти та же, что и в примере с поворачивающейся кнопкой. Разница лишь в том, что анимируется свойство BlurEffect, а не RotateTransform.

<Button Content="One" Margin="10"

MouseEnter="cmd_MouseEnter" MouseLeave="cmd_MouseLeave"> <Button.Ef fect>

<BlurEffeet Radius="10"></BlurEffect> </Button.Effect>

</Button>

Ниже приведена разметка анимации.

<Storyboard х:Name="blurStoryboard"> <DoubleAnimation Storyboard.TargetProperty="Radius" To="0" Duration="0:0:0.4"></DoubleAnimation>

</Storyboard>

<Storyboard x:Name="unblurStoryboard"> <DoubleAnimation Storyboard.TargetProperty="Radius" To="10"

Duration="0:0:0.2"></DoubleAnimation>

</Storyboard>

В данном примере свойство Storyboard.TargetElement устанавливается не в XAML, потому что им нужно управлять на основе событий MouseEnter и MouseLeave. Этот же способ использовался и в примере с вращающимися кнопками.

Кнопки можно не только размывать, но и плавно подсвечивать. Например, класс раскрашивания можно применить к элементу кнопки, создавая таким образом эф­фект сияния при наведении указателя. Кроме того, анимацию раскрашивания пиксе­лей можно применить к переходам между страницами. Ознакомьтесь с библиотекой WPF Shader Effects Library (www.codeplex.com/wpffx), которая работоспособна также в Silverlight. Она содержит впечатляющие классы раскрашивания, далеко превосходя­щие по возможностям классы Silverlight. В ней вы найдете также вспомогательные клас­сы, облегчающие создание переходов между страницами.

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии