Trigger触发器:表示一个触发器,它按单个条件应用属性值或执行操作。
SourceName属性:
获取或设置与导致关联的 setter 要应用的属性对象的名称。
Property属性:
设置需要判断的属性。
Value属性:
设置判断该属性是否等于该值,若等于执行setters操作
Setters属性:
设置一组 Setter 对象,描述要应用当满足指定的条件的操作。
EnterActions属性:
获取要在触发器对象变为活动状态时应用的 TriggerAction 对象的集合。
ExitActions属性:
获取要在触发器对象变为非活动状态时应用的 TriggerAction 对象的集合。
Trigger普通用法:
<Style x:Key="Triggers" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter Property = "Foreground" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
Trigger动画用法
<!--当IsPressed属性为true,改变透明度达到闪动的效果 -->
<Trigger Property="IsPressed" Value="true">
<Trigger.EnterActions>
<BeginStoryboard x:Name="playAnimation">
<Storyboard Storyboard.TargetName="FocusVisual" Storyboard.TargetProperty="Opacity">
<DoubleAnimation AutoReverse="True" RepeatBehavior="Forever" To="1" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<!--停止闪动动画-->
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="playAnimation" />
</Trigger.ExitActions>
</Trigger>
MultiTrigger 类:表示一个应用属性值或一组条件满足时执行操作的触发器。
Conditions属性:
设置 Condition 对象的集合。 对属性更改时满足所有集合中的条件时应用。
Setters属性:
设置一组 Setter 对象,描述要应用当满足指定的条件的操作。
<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="#EEEEEE" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="HasItems" Value="false" />
<Condition Property="Width" Value="Auto" />
</MultiTrigger.Conditions>
<Setter Property="MinWidth" Value="120"/>
</MultiTrigger>
</Style.Triggers>
DataTrigger 类:它会在绑定数据满足指定条件时应用属性值或执行操作。
Binding属性:
获取或设置产生数据对象的属性值的绑定。
Value属性:
设置判断该属性是否等于该值,若等于执行setters操作
Setters属性:
设置一组 Setter 对象,描述要应用当满足指定的条件的操作。
EnterActions属性:
获取要在触发器对象变为活动状态时应用的 TriggerAction 对象的集合。
ExitActions属性:
获取要在触发器对象变为非活动状态时应用的 TriggerAction 对象的集合。
DataTrigger普通用法:
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=State}" Value="WA">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
MultiDataTrigger 类:表示一个应用属性值或绑定的数据满足一组条件时执行操作的触发器。
Conditions属性:
获取 Condition 对象的集合。 对属性值更改时满足所有集合中的条件时应用。
Setters属性:
获取一套 Setter 对象,描述的属性值时要应用的条件的所有 MultiTrigger 满足。
MultiDataTrigger普通用法:
<Window.Resources>
<c:Places x:Key="PlacesData"/>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=State}" Value="WA">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=Name}" Value="Portland" />
<Condition Binding="{Binding Path=State}" Value="OR" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Cyan" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
<StackPanel>
<TextBlock FontSize="18" Margin="5" FontWeight="Bold"
HorizontalAlignment="Center">Data Trigger Sample</TextBlock>
<ListBox Width="180" HorizontalAlignment="Center" Background="Honeydew"
ItemsSource="{Binding Source={StaticResource PlacesData}}"/>
</StackPanel>
EventTrigger 类:表示一个触发器,该触发器应用一组操作以响应一个事件。
RoutedEvent属性:
获取或设置将激活该触发器的 RoutedEvent。
SourceName属性:
获取或设置对象的名称,该对象具有激活此触发器的事件。 仅元素触发器或模板触发器可使用此名称。
Actions属性:
获取事件发生时要应用的操作的集合。
EnterActions属性:
获取要在触发器对象变为活动状态时应用的 TriggerAction 对象的集合。
ExitActions属性:
获取要在触发器对象变为非活动状态时应用的 TriggerAction 对象的集合。
EventTrigger普通用法:
<Style TargetType="Rectangle">
<Setter Property="Width" Value="50" />
<Setter Property="Height" Value="50" />
<Setter Property="Margin" Value="20" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="300" Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(Canvas.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(Canvas.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>