2016-06-08 58 views

回答

0

你可以做这样的事情,其概念只是给出股票的错觉。在连接数据绑定时删除Framework.Loaded触发器。红色/绿色文本是为了说明你想要的错觉。其中绿色将通过一次性保留原始价值,红色将是新价值。还要记得从示例链接中添加NotifyTargetUpdated binding thingy到绑定基础。当然,你可能需要调整一些数值才能得到你想要的结果。

另外不要忘记从故事板中删除RepeatBehavior="Forever",因为它也只是为了这个初始示例。

<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10" ClipToBounds="True"> 
     <Grid.Resources> 
      <Storyboard x:Key="flipItGood" Duration="0:0:2" RepeatBehavior="Forever"> 
       <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" 
              Storyboard.TargetName="A"> 
        <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/> 
       </DoubleAnimationUsingKeyFrames> 
       <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" 
              Storyboard.TargetName="B"> 
        <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="20"/> 
       </DoubleAnimationUsingKeyFrames> 
      </Storyboard> 
     </Grid.Resources> 
     <Grid.Triggers> 
      <!-- THIS IS HERE ONLY FOR AN IMMEDIATE EXAMPLE 
       DITCH THIS TRIGGER FOR THE TARGET.UPDATED ONE WHEN ACTUALLY USING --> 
      <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
       <BeginStoryboard Storyboard="{StaticResource flipItGood}"/> 
      </EventTrigger> 
     </Grid.Triggers> 

     <TextBlock x:Name="A" 
        Text="BIND ME" 
        Foreground="Red" FontSize="18" FontWeight="Bold" 
        RenderTransformOrigin="0.5,0.5"> 

      <TextBlock.RenderTransform> 
       <TransformGroup> 
        <ScaleTransform/> 
        <SkewTransform/> 
        <RotateTransform/> 
        <TranslateTransform Y="-20"/> 
       </TransformGroup> 
      </TextBlock.RenderTransform> 

      <TextBlock.Triggers> 

       <EventTrigger RoutedEvent="Binding.TargetUpdated"> 
        <BeginStoryboard Storyboard="{StaticResource flipItGood}"/> 
       </EventTrigger> 

      </TextBlock.Triggers> 
     </TextBlock> 
     <TextBlock x:Name="B" 
          Text="BIND ME" FontSize="18" FontWeight="Bold" 
          Foreground="Green" RenderTransformOrigin="0.5,0.5"> 
      <TextBlock.RenderTransform> 
       <TransformGroup> 
        <ScaleTransform/> 
        <SkewTransform/> 
        <RotateTransform/> 
        <TranslateTransform/> 
       </TransformGroup> 
      </TextBlock.RenderTransform> 
     </TextBlock> 

    </Grid> 

哪个结果(抱歉蹩脚的gif);

enter image description here

希望这有助于欢呼声。

+0

嗨,非常感谢你,我试图测试你的例子,但我没有设法使其工作(我没有真正使用WPF中的很多动画)。我想我不明白它应该如何工作(我是否需要将Text值绑定到文本块A和文本块B?(我用我的整个代码编辑了我的第一篇文章)谢谢:) – user2088807