WPF闪烁前景标签

时间:2013-05-09 10:31:55

标签: wpf mvvm foreground

我正试图让标签的前景闪烁。我尝试了以下代码,但是我得到了以下异常,我不知道如何解决它。

'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);
        }
    }

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Foreground属性的类型为Brush,与Color

类型的对象不同

您可以使用ColorAnimiation为类型为Color但不属于Brush类型的对象设置动画,因此要为前景画笔设置动画,您需要将属性设置为{ {1}},像这样:

Brush.Color