<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>