网上找了半天,基本都不大成功,最后研究结果如下:
在这里插入代码片 xamL:
<TextBlock x:Name="txtItemDisplayText" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Path=ViewMsg.TopMsg}" VerticalAlignment="Top" Height="96" Width="320" TextAlignment="Center" FontSize="25" FontWeight="Bold" FontFamily="Agency FB" Foreground="Green" Grid.ColumnSpan="2">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="White"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ViewMsg.Blink}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="sbBlink">
<Storyboard RepeatBehavior="Forever" AutoReverse="True" >
<ColorAnimation Storyboard.TargetProperty="Background.Color"
From="White" To="Red"
BeginTime="0:0:0" Duration="0:0:0.3"/>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
From="Red" To="White"
BeginTime="0:0:0.3" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="sbBlink"/>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
后台:
private bool _blink;
public bool Blink
{
get
{
return _blink;
}
set
{
_blink = value;
OnPropertyChanged("Blink");
}
}
使用是把 Blink=true,停止时把 Blink=false