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

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

Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
1 ... 545 546 547 548 549 550 551 552 553 ... 642
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

<b>&lt;!-- Стандартный стиль для всех текстовых полей --&gt;</b>

&lt;Style TargetType=&quot;TextBox&quot;&gt;

  &lt;Setter Property=&quot;FontSize&quot; Value=&quot;14&quot;/&gt;

  &lt;Setter Property=&quot;Width&quot; Value=&quot;100&quot;/&gt;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  &lt;Setter Property=&quot;Height&quot; Value=&quot;30&quot;/&gt;

  &lt;Setter Property=&quot;BorderThickness&quot; Value=&quot;5&quot;/&gt;

  &lt;Setter Property=&quot;BorderBrush&quot; Value=&quot;Red&quot;/&gt;

  &lt;Setter Property=&quot;FontStyle&quot; Value=&quot;Italic&quot;/&gt;

<b>  &lt;!-- Следующий установщик будет применен, только</b>

<b>       когда текстовое поле находится в фокусе --&gt;</b>

  &lt;Style.Triggers&gt;

    &lt;Trigger Property=&quot;IsFocused&quot; Value=&quot;True&quot;&gt;

      &lt;Setter Property=&quot;Background&quot; Value=&quot;Yellow&quot;/&gt;

    &lt;/Trigger&gt;

  &lt;/Style.Triggers&gt;

&lt;/Style&gt;

При тестировании этого стиля вы обнаружите, что по мере перехода с помощью клавиши <ТаЬ> между элементами TextBox текущий выбранный TextBox получает фон желтого цвета (если только стиль не отключен путем присваивания {x:Null} свойству Style).

Триггеры свойств также весьма интеллектуальны в том смысле, что когда условие триггера не истинно, то свойство автоматически получает стандартное значение. Следовательно, как только TextBox теряет фокус, он также автоматически принимает стандартный цвет без какой-либо работы с вашей стороны. По контрасту с ними триггеры событий (которые исследовались при рассмотрении анимации WPF) не возвращаются автоматически в предыдущее состояние.

Определение стилей с множеством триггеров

Триггеры могут быть спроектированы так, что определенные элементы Setter будут применяться, когда истинными должны оказаться многие условия. Пусть необходимо устанавливать фон элемента TextBox в Yellow только в случае, если он имеет активный фокус и курсор мыши находится внутри его границ. Для этого можно воспользоваться элементом MultiTriggern определить в нем каждое условие:

<b>&lt;!-- Стандартный стиль для всех текстовых полей --&gt;</b>

&lt;Style TargetType=&quot;TextBox&quot;&gt;

  &lt;Setter Property=&quot;FontSize&quot; Value=&quot;14&quot;/&gt;

  &lt;Setter Property=&quot;Width&quot; Value=&quot;100&quot;/&gt;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  &lt;Setter Property=&quot;Height&quot; Value=&quot;30&quot;/&gt;

  &lt;Setter Property=&quot;BorderThickness&quot; Value=&quot;5&quot;/&gt;

  &lt;Setter Property=&quot;BorderBrush&quot; Value=&quot;Red&quot;/&gt;

  &lt;Setter Property=&quot;FontStyle&quot; Value=&quot;Italic&quot;/&gt;

<b>  &lt;!-- Следующий установщик будет применен, только когда текстовое</b>

<b>       поле имеет фокус И над ним находится курсор мыши --&gt;</b>

  &lt;Style.Triggers&gt;

    &lt;MultiTrigger&gt;

      &lt;MultiTrigger.Conditions&gt;

          &lt;Condition Property=&quot;IsFocused&quot; Value=&quot;True&quot;/&gt;

          &lt;Condition Property=&quot;IsMouseOver&quot; Value=&quot;True&quot;/&gt;

      &lt;/MultiTrigger.Conditions&gt;

      &lt;Setter Property=&quot;Background&quot; Value=&quot;Yellow&quot;/&gt;

    &lt;/MultiTrigger&gt;

  &lt;/Style.Triggers&gt;

&lt;/Style&gt;

Стили с анимацией

Стили также могут содержать в себе триггеры, которые запускают анимационную последовательность. Ниже показан последний стиль, который после применения к элементам управления Button заставит их увеличиваться и уменьшаться в размерах, когда курсор мыши находится внутри границ кнопки:

<b>&lt;!-- Стиль увеличивающейся кнопки --&gt;</b>

&lt;Style x:Key=&quot;GrowingButtonStyle&quot; TargetType=&quot;Button&quot;&gt;

  &lt;Setter Property=&quot;Height&quot; Value=&quot;40&quot;/&gt;

  &lt;Setter Property=&quot;Width&quot; Value=&quot;100&quot;/&gt;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  &lt;Style.Triggers&gt;

    &lt;Trigger Property=&quot;IsMouseOver&quot; Value=&quot;True&quot;&gt;

      &lt;Trigger.EnterActions&gt;

        &lt;BeginStoryboard&gt;

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

            &lt;DoubleAnimation From=&quot;40&quot; To=&quot;200&quot;

                Duration=&quot;0:0:2&quot; AutoReverse=&quot;True&quot;/&gt;

          &lt;/Storyboard&gt;

        &lt;/BeginStoryboard&gt;

      &lt;/Trigger.EnterActions&gt;

1 ... 545 546 547 548 549 550 551 552 553 ... 642
Перейти на страницу:
Отывы о книге
Открыть боковую панель
Комментарии
Галина
Галина 05.11.2025 - 22:53
Красивая история. Вселяет веру в добро !
Женя
Женя 05.11.2025 - 12:27
Ну, конечно, закрутили) Санта Барбара отдыхает
Viola
Viola 04.11.2025 - 22:45
Больше подойдёт для подростков.
Таня
Таня 02.11.2025 - 01:03
А продолжение? Уверенна, что оно должно быть
Уля
Уля 26.10.2025 - 00:40
У богатых свои причуды. С удовольствием буду читать продолжение