<Window x:Class="多种触发器.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="633" Width="669">
<Window.Resources>
<!-- 定义公共label资源-->
<Style x:Key="LabelStyle">
<Setter Property="Control.Background" Value="Wheat"></Setter>
<Setter Property="Control.BorderBrush" Value="Black"></Setter>
<Setter Property="Control.BorderThickness" Value="1"></Setter>
</Style>
<!--BaseOn 继承上面的资源,一个简单的事件触发器。-->
<Style x:Key="Triggers" BasedOn="{StaticResource LabelStyle}">
<Style.Triggers>
<Trigger Property="Control.IsMouseOver" Value="True">
<Setter Property="Control.Background" Value="Red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
<!---->
<Style x:Key="MultiTrigger" BasedOn="{StaticResource LabelStyle}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Control.IsMouseOver" Value="True"></Condition>
<Condition Property="Control.IsFocused" Value="False"></Condition>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Control.Background" Value="Green"></Setter>
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
<!--EventTrigger多条件触发器 -->
<Style x:Key="EventTrigger" BasedOn="{StaticResource LabelStyle}">
<Style.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard Name="ExpendWidth">
<Storyboard>
<DoubleAnimation Duration="0:0:5" Storyboard.TargetProperty="Width" To="300"></DoubleAnimation>
<DoubleAnimation Duration="0:0:5" Storyboard.TargetProperty="Height" To="200"></DoubleAnimation>
<DoubleAnimation Duration="0:0:5" Storyboard.TargetProperty="FontSize" To="30" ></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="FontSize"></DoubleAnimation>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Width"></DoubleAnimation>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Height"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel Orientation="Vertical">
<Label Height="28" Name="label1" VerticalAlignment="Top" Width="79" Style="{StaticResource Triggers}" >简单触发器</Label>
<Label Height="28" Name="label2" VerticalAlignment="Top" Width="90" Margin="10,10" Style="{StaticResource MultiTrigger}" Foreground="Red" >多条件触发器</Label>
<Label Height="40" Name="label4" Margin="0,0,0,10" Width="120" Style="{StaticResource EventTrigger}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">事件触发器</Label>
<Label Height="40" Name="label3" Width="120" Style="{StaticResource LabelStyle}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center">事件触发器</Label>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="100">
<Button Height="23" Name="button1" Width="75">stop</Button>
<Button Height="23" Name="button2" Width="75">Resume</Button>
<Button Height="23" Name="button3" Width="75">Seek</Button>
<Button Height="23" Name="button4" Width="75">Skip</Button>
<Button Height="23" Name="button5" Width="75">SetSpeed</Button>
</StackPanel>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="label3">
<EventTrigger.Actions>
<BeginStoryboard Name="ExpendWidth">
<Storyboard>
<DoubleAnimation Duration="0:0:10" Storyboard.TargetProperty="Width" To="400" Storyboard.TargetName="label3" ></DoubleAnimation>
<DoubleAnimation Duration="0:0:10" Storyboard.TargetProperty="Height" To="300" Storyboard.TargetName="label3" AutoReverse="True"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="label3">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Width" Storyboard.TargetName="label3"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="button1">
<PauseStoryboard BeginStoryboardName="ExpendWidth"></PauseStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="button2">
<ResumeStoryboard BeginStoryboardName="ExpendWidth"></ResumeStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="button3">
<SeekStoryboard BeginStoryboardName="ExpendWidth" Offset="0:0:0" Origin="BeginTime"></SeekStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="button4">
<SkipStoryboardToFill BeginStoryboardName="ExpendWidth" />
</EventTrigger>
<EventTrigger RoutedEvent="Button.Click" SourceName="button5">
<SetStoryboardSpeedRatio SpeedRatio="3" BeginStoryboardName="ExpendWidth" />
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</Window>