zoukankan      html  css  js  c++  java
  • 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>
    
    
  • 相关阅读:
    定位
    浮动
    标准文档流
    盒模型
    CSS继承性和层叠性
    微信公众平台-信息的获取
    信息系统项目管理师-整体介绍
    Dijkstra算法 c语言实现
    windows下c语言获取程序当前的执行目录,读文件的代码片
    网络流问题,及其代码
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/1697122.html
Copyright © 2011-2022 走看看