books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

На заметку! В подкаталоге

XamlAnimations
внутри
Chapter_27
есть несколько файлов XAML. Скопируйте их содержимое в редактор Kaxaml, чтобы просмотреть результаты.

Большей частью создание анимации подобно всему тому, что вы уже видели: по-прежнему производится конфигурирование объекта

Animation
, который затем ассоциируется со свойством объекта. Тем не менее, крупное отличие связано с тем, что разметка XAML не является дружественной к вызовам методов. В результате вместо вызова
BeginAnimation()
используется раскадровка как промежуточный уровень.

Давайте рассмотрим полный пример анимации, определенной в терминах XAML, и подробно ее проанализируем. Приведенное далее определение XAML будет отображать окно, содержащее единственную метку. После того как объект

Label
загрузился в память, он начинает анимационную последовательность, во время которой размер шрифта увеличивается от 12 до 100 точек за период в четыре секунды. Анимация будет повторяться столько времени, сколько объект остается загруженным в память. Разметка находится в файле
GrowLabelFont.xaml
, так что его содержимое необходимо скопировать в редактор Kaxaml, нажать клавишу <F5> и понаблюдать за поведением.

&lt;Window

  xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;

  xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;

  Height=&quot;200&quot; Width=&quot;600&quot; WindowStartupLocation=&quot;CenterScreen&quot;

  Title=&quot;Growing Label Font!&quot;&gt;

  &lt;StackPanel&gt;

    &lt;Label Content=&quot;Interesting...&quot;&gt;

      &lt;Label.Triggers&gt;

        &lt;EventTrigger RoutedEvent=&quot;Label.Loaded&quot;&gt;

          &lt;EventTrigger.Actions&gt;

            &lt;BeginStoryboard&gt;

              &lt;Storyboard TargetProperty=&quot;FontSize&quot;&gt;

                &lt;DoubleAnimation From=&quot;12&quot; To=&quot;100&quot; Duration=&quot;0:0:4&quot;

                    RepeatBehavior=&quot;Forever&quot;/&gt;

              &lt;/Storyboard&gt;

            &lt;/BeginStoryboard&gt;

          &lt;/EventTrigger.Actions&gt;

        &lt;/EventTrigger&gt;

      &lt;/Label.Triggers&gt;

    &lt;/Label&gt;

  &lt;/StackPanel&gt;

&lt;/Window&gt;

А теперь подробно разберем пример.

Роль раскадровок

При продвижении от самого глубоко вложенного элемента наружу первым встречается элемент

&lt;DoubleAnimation&gt;
, обращающийся к тем же самым свойствам, которые устанавливались в процедурном коде(
From
,
То
,
Duration
и
RepeatBehavior
):

&lt;DoubleAnimation From=&quot;12&quot; To=&quot;100&quot; Duration=&quot;0:0:4&quot;

                 RepeatBehavior=&quot;Forever&quot;/&gt;

Как упоминалось ранее, элементы

Animation
помещаются внутрь элемента
Storyboard
, применяемого для отображения объекта анимации на заданное свойство родительского типа через свойство
TargetProperty
, которым в данном случае является
FontSize
. Элемент
Storyboard
всегда находится внутри родительского элемента по имени
BeginStoryboard
:

&lt;BeginStoryboard&gt;

  &lt;Storyboard TargetProperty=&quot;FontSize&quot;&gt;

    &lt;DoubleAnimation From=&quot;12&quot; To=&quot;100&quot; Duration=&quot;0:0:4&quot;

                     RepeatBehavior=&quot;Forever&quot;/&gt;

  &lt;/Storyboard&gt;

&lt;/BeginStoryboard&gt;

Роль триггеров событий

После того как элемент

BeginStoryboard
определен, должно быть указано действие какого-то вида, которое приведет к запуску анимации. Инфраструктура WPF предлагает несколько разных способов реагирования на условия времени выполнения в разметке, один из которых называется триггером. С высокоуровневой точки зрения триггер можно считать способом реагирования на событие в разметке XAML без необходимости в написании процедурного кода.

Обычно когда ответ на событие реализуется в С#, пишется специальный код, который будет выполнен при поступлении события. Однако триггер — всего лишь способ получить уведомление о том, что некоторое событие произошло (загрузка элемента в память, наведение на него курсора мыши, получение им фокуса и т.д.).

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

Label
в память. Поскольку вас интересует событие
Loaded
элемента
Label
, элемент
EventTrigger
помещается в коллекцию триггеров элемента
Label
:

&lt;Label Content=&quot;Interesting...&quot;&gt;

  &lt;Label.Triggers&gt;

    &lt;EventTrigger RoutedEvent=&quot;Label.Loaded&quot;&gt;

      &lt;EventTrigger.Actions&gt;

        &lt;BeginStoryboard&gt;

          &lt;Storyboard TargetProperty=&quot;FontSize&quot;&gt;

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*