【发布时间】:2016-06-23 09:35:01
【问题描述】:
我有 2 个用纯色填充的文本块,绿色或红色。
我已经为 xaml 本身中的文本块设计了样式。现在我的问题是如果颜色为红色,我需要为文本块设置动画。如果颜色是绿色,则不需要动画。目前动画是针对 2 个文本块启动的,与颜色无关。(在窗口加载事件中)
我尝试使用数据触发器,例如检查文本块的颜色,然后启动故事板。但无论如何它都不起作用。
请参考下面的代码,并根据 XAML 本身中的 BG 颜色为条件动画建议一个解决方案,因为我不想在视图模型中为此修改任何代码。
<Style x:Key="StatusTextStyle2" TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="16" />
<Setter Property="Width" Value="20"></Setter>
<Style.Resources>
<Storyboard x:Key="flashAnimation">
<DoubleAnimation AutoReverse="True"
Duration="0:0:0.5"
From="1"
RepeatBehavior="Forever"
Storyboard.TargetProperty="Opacity"
To="0" />
</Storyboard>
</Style.Resources>
<Style.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard Name="flash" Storyboard="{StaticResource flashAnimation}" />
</EventTrigger>
</Style.Triggers>
</Style>
【问题讨论】: