2016-09-27 22 views
0

我想在動畫完成時將我的數據綁定屬性IsFlashing設置爲False當動畫在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

Completed事件ObjectAnimationUsingKeyFrames

ExitActions的是當觸發條件不再滿足(在這種情況下IsFlashing返回到假時)會發生什麼,這是不一樣的動畫完成。

+0

完成的事件只適用於故事板是靜態的,然後事件觸發,但我無法從我的DataContext類型的發件人AnimationClock – 0x4f3759df

+0

我提出了一個新的問題,http://stackoverflow.com/questions/39750114/setting-一個屬性上,WPF的動畫出口22條軍規 – 0x4f3759df