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>

    运行截图:

  • 相关阅读:
    MySQL索引底层的实现
    mysql索引深入优化
    explain详解与索引最佳实践
    (MYSQL)回表查询原理,利用联合索引实现索引覆盖
    为什么重复值高的字段不能建索引(比如性别字段等)
    Spring的事务
    为什么要用Redis?Redis为什么这么快?
    spring AOP
    钩子教程
    钩子教程
  • 原文地址:https://www.cnblogs.com/527289276qq/p/7373109.html
Copyright © 2011-2022 走看看