我正试图让标签的前景闪烁。我尝试了以下代码,但是我得到了以下异常,我不知道如何解决它。
'System.Windows.Media.Animation.ColorAnimation' animation object cannot be used
to animate property 'Foreground' because it is of incompatible type
'System.Windows.Media.Brush'.
使用此XAML:
<Label Content="{Binding Path=SendingAlert, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Foreground="Transparent"
HorizontalAlignment="Right">
<Label.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSending, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard
Storyboard.TargetProperty="Foreground"
Duration="0:0:0.5">
<ColorAnimation From="Transparent" To="Red" AutoReverse="True" RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<!--<DataTrigger Binding="{Binding IsSending}" Value="False">
<Setter Property="Foreground" Value="Transparent"/>
</DataTrigger>-->
</Style.Triggers>
</Style>
</Label.Style>
</Label>
和
public bool IsSending
{
get { return !CanDoActions; }
}
private string _sendingAlert = "sending";//string.Empty;
public string SendingAlert
{
get { return _sendingAlert; }
set
{
_sendingAlert = value;
OnPropertyChanged(() => SendingAlert);
}
}
如何解决这个问题?
答案 0 :(得分:1)
Foreground
属性的类型为Brush
,与Color
您可以使用ColorAnimiation
为类型为Color
但不属于Brush
类型的对象设置动画,因此要为前景画笔设置动画,您需要将属性设置为{ {1}},像这样:
Brush.Color