2010-06-03 2 views
13

У меня есть экран, содержащий около 15-20 текстовых блоков, каждый из которых привязывается к другому свойству, сначала все текстовые блоки пусты, текстовое обновление поступает от другого клиента.Текст в текстовом блоге WPF изменен Уведомление

Вещь, которую я хочу сделать, - это анимировать мигающий текст в течение 3 секунд при изменении текста.

Я использовал ниже раскадровку, чтобы это произошло:

<Setter Property="Visibility" Value="Visible"/> 

     <Style.Triggers> 
     <EventTrigger RoutedEvent="UIElement.MouseEnter"> 

      <BeginStoryboard > 
       <Storyboard Duration="0:0:03"> 
        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Visibility)"> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00" Value="{x:Static Visibility.Visible}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00.5" Value="{x:Static Visibility.Hidden}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:01" Value="{x:Static Visibility.Visible}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:01.5" Value="{x:Static Visibility.Hidden}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:02" Value="{x:Static Visibility.Visible}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:02.5" Value="{x:Static Visibility.Hidden}"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:03" Value="{x:Static Visibility.Visible}"/> 
        </ObjectAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Style.Triggers> 
</Style> 

Использование мыши ввести событие текст флэш-это хорошо, но с использованием Binding.TargetUpdated событие ничего не сработает.

Кто-нибудь знает о событии, которое поднимается при изменении текста TextBlock?

ответ

24

сделал установить NotifyOnTargetUpdated свойство истинно

<TextBlock Text="{Binding Path=YourProperty, NotifyOnTargetUpdated=True}" TargetUpdated="OnTargetUpdated"/> 
+0

хорошо я не сделал, и это было то спасибо !! – Eran

6

уже староват, но здесь решение в чистом XAML:

<TextBlock VerticalAlignment="Center" 
      Text="{Binding ErrorMsg, NotifyOnTargetUpdated=True}"> 
    <TextBlock.Triggers> 
     <EventTrigger RoutedEvent="Binding.TargetUpdated"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimation BeginTime="0:0:0" 
            Duration="0:0:1" 
            From="0.0" 
            Storyboard.TargetProperty="Opacity" 
            To="1.0" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </TextBlock.Triggers> 
</TextBlock> 
+1

Спасибо, хорошее решение xaml. Просто то, что я искал. –

Смежные вопросы