zoukankan      html  css  js  c++  java
  • WPF之数据触发器 改变控件背景色或闪烁

    需求,很多矩形表示桶,其中:空桶=红色,满桶=绿色,使用中=红绿闪烁。

    <Window x:Class="FlickerDemo.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:FlickerDemo"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <Style TargetType="Label">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Tag}" Value="0">
                        <Setter Property="Background"
                            Value="Green"></Setter>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Tag}" Value="1">
                        <Setter Property="Background"
                            Value="Red"></Setter>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Tag}" Value="2">
                        <DataTrigger.EnterActions>
                            <BeginStoryboard Name="Shine">
                                <Storyboard RepeatBehavior="Forever">
                                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="Background.Color">
                                        <EasingColorKeyFrame KeyTime="0" Value="Red"></EasingColorKeyFrame>
                                        <EasingColorKeyFrame KeyTime="0:0:0.5" Value="Green"></EasingColorKeyFrame>
                                    </ColorAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </DataTrigger.EnterActions>
                        <DataTrigger.ExitActions>
                            <StopStoryboard BeginStoryboardName="Shine" />
                        </DataTrigger.ExitActions>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Window.Resources>
        <Grid>
            <StackPanel HorizontalAlignment="Center">
                <Label Tag="0" Margin="5" Width="81" Height="45"  Foreground="White"/>
                <Label Tag="1" Margin="5" Width="81" Height="45" Foreground="White"/>
                <Label Tag="2"  Margin="5"  Width="81" Background="Green" Height="45"  Foreground="White"/>
            </StackPanel>
        </Grid>
    </Window>

    运行截图:

  • 相关阅读:
    Office2007界面风格的绿色软件针式个人知识库管理系统[V3.5]
    Mentor工具简介
    Xilinx网站资源导读
    FPGA时钟问题的探讨汇总
    FPGA中竞争冒险问题的研究
    一些IC前端设计工具
    SPI协议简介
    USB接口定义
    TTL与CMOS电平的区别
    Synopsys工具简介
  • 原文地址:https://www.cnblogs.com/527289276qq/p/7373109.html
Copyright © 2011-2022 走看看