2016-07-24 3 views
0

두 개의 스토리 보드를 사용하여 애니메이션 작업을하고 있습니다. 처음에는 제대로 재생되지만, 두 번째로 재생하면 첫 번째 스토리 보드가 전혀 표시되지 않습니다. 이것은 내 코드 샘플입니다.스토리 보드가 초기 위치에서 다시 시작하지 않습니다.

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" Width="1920" Height="1080" 
         xmlns:my="clr-namespace:vMixTitleLibrary;assembly=vMixTitleLibrary"> 
    <UserControl.Resources> 
     <Storyboard x:Key="Storyboard1"> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="Image2"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="-476"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:1" Value="0"/> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="Image1"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="236"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:1" Value="0"/> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="Programme"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="236"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:1" Value="0"/> 
      </DoubleAnimationUsingKeyFrames> 
     </Storyboard> 
     <Storyboard x:Key="Storyboard2"> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="Image1"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="0"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="-1312"/> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="Programme"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="0"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="-1312"/> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="Image2"> 
       <SplineDoubleKeyFrame KeyTime="0" Value="0"/> 
       <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="-968"/> 
      </DoubleAnimationUsingKeyFrames> 
     </Storyboard> 
    </UserControl.Resources> 
    <UserControl.Triggers> 
     <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
      <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/> 
     </EventTrigger> 
    </UserControl.Triggers> 
    <Grid> 
    <Image Source="UpNextBar.png" Name="Image1" Width="1199" Height="100" Margin="48,871,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" > 
     <Image.RenderTransform> 
        <TranslateTransform/> 
      </Image.RenderTransform> 
     </Image> 
    <Image Source="UpNextText.png" Name="Image2" Width="368" Height="177" Margin="41,735,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" > 
      <Image.RenderTransform> 
        <TranslateTransform/> 
      </Image.RenderTransform> 
     </Image> 
    <my:TextBlockDesign Fill="#FF000000" FontSize="64" Text="Programme Title" Name="Programme" Width="984" Height="74" Margin="223,885,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" > 
      <my:TextBlockDesign.RenderTransform> 
        <TranslateTransform/> 
      </my:TextBlockDesign.RenderTransform> 
     </my:TextBlockDesign> 
    </Grid> 
</UserControl> 

처음으로 애니메이션은 오버레이되어 재생되지만 스토리 보드 1은 두 번째로 나타나지 않습니다. 오버레이가 제거되면 storyboard1이 끝내기로되어 스토리 보드 2 애니메이션을 재생하는 위치에 나타납니다.

문제의 원인을 알려주십시오.

+0

문제를 재현 할 수 있도록보다 일반적인 예로 변경하십시오. Trigger and StoryBoard를 사용하여 어둠 속에서 가볍게 두드리는 것 – lokusking

+0

좀 더 일반적인 예를 이해하지 못합니다. 이 코드는 애니메이션에있는 모든 것에 관한 것입니다. 재생 버튼을 누르면 왼쪽에서 "image1"이 나오고, 아래에서 textblock과 image2가 입력됩니다. 스토리 보드 2의 버튼을 누르면 "image1"이 위쪽에서 나가고 textblock과 image2는 왼쪽에서 밖으로 나옵니다. 그것은 예상대로 발생합니다. 그러나 애니메이션을 다시 시작하기 위해 재생 버튼을 다시 누르면 아무 일도 일어나지 않습니다. 그러나 두 번째 버튼을 누르면 갑자기 나타나고 밖으로 나옵니다. – Anselm

+0

@Anselm XAML은 UserControl 만 표시하며이 image1 및 image2는 어디에 있습니까? – AnjumSKhan

답변

0

storyline에서 첫 번째 키 프레임을 기본 제목으로 설정하고 속성 HIDDEN을 설정 한 다음 애니메이션을 usuall로 설정하십시오. storyline2를 재생하고 storuline1을 다시 재생 한 후 모든 개체가 기본 위치로 설정되고 숨겨져 다시 재생됩니다.

관련 문제