Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<b><!-- Стандартный стиль для всех текстовых полей --></b><Style TargetType="TextBox"> <Setter Property="FontSize" Value="14"/> <Setter Property="Width" Value="100"/> <Setter Property="Height" Value="30"/> <Setter Property="BorderThickness" Value="5"/> <Setter Property="BorderBrush" Value="Red"/> <Setter Property="FontStyle" Value="Italic"/><b> <!-- Следующий установщик будет применен, только</b><b> когда текстовое поле находится в фокусе --></b> <Style.Triggers> <Trigger Property="IsFocused" Value="True"> <Setter Property="Background" Value="Yellow"/> </Trigger> </Style.Triggers></Style>При тестировании этого стиля вы обнаружите, что по мере перехода с помощью клавиши <ТаЬ> между элементами
TextBoxTextBox{x:Null}StyleТриггеры свойств также весьма интеллектуальны в том смысле, что когда условие триггера не истинно, то свойство автоматически получает стандартное значение. Следовательно, как только
TextBoxОпределение стилей с множеством триггеров
Триггеры могут быть спроектированы так, что определенные элементы
SetterTextBoxYellowMultiTriggern<b><!-- Стандартный стиль для всех текстовых полей --></b><Style TargetType="TextBox"> <Setter Property="FontSize" Value="14"/> <Setter Property="Width" Value="100"/> <Setter Property="Height" Value="30"/> <Setter Property="BorderThickness" Value="5"/> <Setter Property="BorderBrush" Value="Red"/> <Setter Property="FontStyle" Value="Italic"/><b> <!-- Следующий установщик будет применен, только когда текстовое</b><b> поле имеет фокус И над ним находится курсор мыши --></b> <Style.Triggers> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsFocused" Value="True"/> <Condition Property="IsMouseOver" Value="True"/> </MultiTrigger.Conditions> <Setter Property="Background" Value="Yellow"/> </MultiTrigger> </Style.Triggers></Style>Стили с анимацией
Стили также могут содержать в себе триггеры, которые запускают анимационную последовательность. Ниже показан последний стиль, который после применения к элементам управления
Button<b><!-- Стиль увеличивающейся кнопки --></b><Style x:Key="GrowingButtonStyle" TargetType="Button"> <Setter Property="Height" Value="40"/> <Setter Property="Width" Value="100"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Trigger.EnterActions> <BeginStoryboard> <Storyboard TargetProperty="Height"> <DoubleAnimation From="40" To="200" Duration="0:0:2" AutoReverse="True"/> </Storyboard> </BeginStoryboard> </Trigger.EnterActions>