2010-06-03 28 views
13

Tôi có một màn hình chứa khoảng 15-20 TextBlocks mỗi một liên kết với một tài sản khác nhau, lúc đầu tất cả các TextBlocks là trống bản cập nhật văn bản đến từ khách hàng khác.WPF TextBlock văn bản thay đổi thông báo

Điều tôi muốn làm là tạo hoạt ảnh cho văn bản nhấp nháy trong 3 giây khi thay đổi văn bản.

tôi đã sử dụng các kịch bản dưới đây để làm cho điều đó xảy ra:

<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> 

Sử dụng chuột nhập sự kiện đèn flash văn bản là tốt nhưng sử dụng sự kiện Binding.TargetUpdated không kích hoạt bất cứ điều gì.

Bất kỳ ai biết về sự kiện tăng lên khi văn bản TextBlock bị thay đổi?

Trả lời

24

bạn đã thiết lập các NotifyOnTargetUpdated tài sản cho đúng

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

tốt tôi đã làm không và nó đã nó Cảm ơn !! – Eran

6

Đã một chút cũ, nhưng đây là giải pháp trong XAML tinh khiết:

<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

Cảm ơn, một giải pháp xaml tuyệt vời duy nhất. Chỉ cần những gì tôi đang tìm kiếm. –

Các vấn đề liên quan