1. 程式人生 > >WPF之數據觸發器 改變控件背景色或閃爍

WPF之數據觸發器 改變控件背景色或閃爍

cti get 背景 anim soft reg using round markup

需求,很多矩形表示桶,其中:空桶=紅色,滿桶=綠色,使用中=紅綠閃爍。

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

運行截圖:

技術分享

WPF之數據觸發器 改變控件背景色或閃爍