2016-09-27 14 views
0

アニメーションが完了すると、データバインドされたプロパティIsFlashingFalseに設定します。WPFでアニメーションが完了したときにデータバインドされていないプロパティを設定解除しました

<Border BorderThickness="1" 
        Height="15" 
        Width="20" 
        CornerRadius="2" 
        BorderBrush="Black" 
        DockPanel.Dock="Top" 
        Grid.Row="1" > 

     <Border.Style> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsFlashing}" Value="True" x:Name="dataTrigger"> 
         <DataTrigger.EnterActions> 
          <BeginStoryboard> 
           <Storyboard FillBehavior="Stop" RepeatBehavior="1x" x:Name="startStoryBoard">           
            <ObjectAnimationUsingKeyFrames 
              Storyboard.TargetProperty="Background" 
              Duration="0:0:4" RepeatBehavior="1x">  
             <ObjectAnimationUsingKeyFrames.KeyFrames>  
              <DiscreteObjectKeyFrame KeyTime="0:0:1"> 
               <DiscreteObjectKeyFrame.Value> 
                <LinearGradientBrush> 
                 <LinearGradientBrush.GradientStops> 
                  <GradientStop Color="Yellow" Offset="0.0" /> 
                  <GradientStop Color="Orange" Offset="0.9" /> 
                  <GradientStop Color="Red" Offset="1.0" /> 
                 </LinearGradientBrush.GradientStops> 
                </LinearGradientBrush> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames.KeyFrames> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </BeginStoryboard> 
         </DataTrigger.EnterActions> 
         <DataTrigger.ExitActions>  
          <!-- how can I set my bound property "IsFlashing" to false when we exit here ? --> 
         </DataTrigger.ExitActions> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
     <Border.Background> 
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
       <GradientStop Color="#FFFFFF" Offset="0.0" /> 
       <GradientStop Color="#ADD8E6" Offset="0.9" /> 
       <GradientStop Color="#8aacb8" Offset="1.0" /> 
      </LinearGradientBrush> 
     </Border.Background> 
     <TextBlock Foreground="Black" Text="{Binding Path=MarkerCode}" FontFamily="Segoe UI" FontSize="12" TextAlignment="Center" VerticalAlignment="Center"> 
      <TextBlock.Effect> 
       <DropShadowEffect ShadowDepth="0" BlurRadius="3" Color="White" /> 
      </TextBlock.Effect> 
     </TextBlock> 

</Border> 

答えて

1

アニメーション完了同じではありませんExitActionsは(falseに戻りますIsFlashingこの場合には)トリガ条件が満たされなくなった時に起こりませんどのようなものObjectAnimationUsingKeyFrames

Completedイベントに聞きます。

+0

完了したイベントは、Storyboardが静的で、イベントが発生したが、AnimationClockタイプの送信者から自分のDataContextを取得できない場合にのみ機能します。 – 0x4f3759df

+0

新しい質問がありました。http://stackoverflow.com/questions/39750114/setting- a-property-on-wpf-animation-exit-catch-22 – 0x4f3759df

関連する問題