• WPF 多种触发器代码


    <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>
    
    
  • 相关阅读:
    名信片定做网站
    [置顶] 数据库开发常识
    <IMG>中UserMap的用法
    阿斯钢iojeg9uhweu9erhpu9hyw49
    慎得慌二u赫然共和任务i个屁
    阿斯钢iojeg9uhw8uhy平
    2014校园招聘笔、面经历总结---华为双选会
    PDCA模型的学习
    阿斯钢 弇7人后偶尔一个味5而已
    【HTML】让<pre>标签文本自动换行
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/1697122.html
Copyright © 2020-2023  润新知