2013-05-09 2 views
1

Я пытаюсь сделать мигание переднего плана ярлыка. Я попробовал следующий код, но получил следующее исключение, и я не знаю, как его решить.WPF мигающий знак переднего плана

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

Любая идея, как это исправить?

+9

http://stackoverflow.com/questions/2652831/blinking-textblock –

+1

http://stackoverflow.com/questions/15822519/making- a- МОФ-этикетка или-другая-элемент-флэш-анимация с помощью- –

ответ

1

Foreground свойства типа Brush, который отличается от объекта типа Color

Вы можете использовать ColorAnimiation анимировать объект типа Color, но не типа Brush, так, чтобы оживить вашу кисть переднего плана , вам необходимо установить свойство в Brush.Color, как это:

Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)"