2013-09-13 4 views
0

Я пытаюсь сделать анимацию для Splashscreen в телефоне Windows 8. Я завершил анимацию для объекта, чтобы отскок. Но после завершения анимации он должен сразу перейти на следующую страницу. Как это сделать?Как перейти на следующую страницу после завершения анимации?

//MainPage.xaml 
     <phone:PhoneApplicationPage.Resources> 
       <Storyboard x:Name="Storyboard1"> 
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="arc"> 
         <EasingDoubleKeyFrame KeyTime="0" Value="-555"> 
          <EasingDoubleKeyFrame.EasingFunction> 
           <BounceEase EasingMode="EaseOut"/> 
          </EasingDoubleKeyFrame.EasingFunction> 
         </EasingDoubleKeyFrame> 
         <DiscreteDoubleKeyFrame KeyTime="0:0:5" Value="-150"/> 

        </DoubleAnimationUsingKeyFrames> 
       </Storyboard> 
      </phone:PhoneApplicationPage.Resources> 

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 

      <es:Arc x:Name="arc" ArcThickness="20" ArcThicknessUnit="Pixel" EndAngle="360" HorizontalAlignment="Left" Height="100" Margin="174,369.5,0,0" Stretch="None" Stroke="Black" StartAngle="0" UseLayoutRounding="False" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.5,0.5" Loaded="arc_Loaded"> 
       <es:Arc.RenderTransform> 
        <CompositeTransform/> 
       </es:Arc.RenderTransform> 
       <es:Arc.Fill> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="#FF3B9E5B" Offset="0"/> 
         <GradientStop Color="#FF8D2727" Offset="1"/> 
        </LinearGradientBrush> 
       </es:Arc.Fill> 
      </es:Arc> 

     </Grid> 
+0

Почему вы указали тег wpf на свой вопрос? –

+0

xaml поддерживается wpf. поэтому я добавил. –

+1

Нет, WPF не является XAML. На Windows Phone есть подмножество Silverlight, но не WPF. Это означает, что иногда вам не удастся скомпилировать код WPF на Windows Phone. Вам действительно нужны ответы? –

ответ

3

Heres решение, но я думаю, вы должны разделить больше о проблеме, если это оленья кожа поможет

<Storyboard x:Name="StoryboardTest" Completed="Storyboard_Completed"> 
       //What ever animation you want to do 
      </Storyboard> 

И в файле CS:

private void Storyboard_Completed(object sender, EventArgs e) 
{ 
    NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); 
} 

Для демо на анимационном заставке перейдите по этой ссылке progress bar splash screen и примените свою анимацию соответственно.

+0

моя анимация длится 5 секунд. Только после завершения анимации он должен перейти к следующему экрану. Мне не нужна только навигация. –

+0

Можете ли вы объяснить немного больше, я думаю, я могу придумать решение. Если у вас есть какой-либо фрагмент кода, пожалуйста, поделитесь :) – Anobik

+0

вышеупомянутая анимация - это эффект подпрыгивания. он связан с объектом, называемым «дугой». Итак, в течение 5 секунд этот объект отскакивает на экране. И сразу после завершения этой анимации страница должна перейти к следующему экрану. это все. Спасибо. –

1

Вы можете перейти к следующей странице в Завершенное мероприятие сотрита.

<Storyboard x:Name="Storyboard1" Completed="Storyboard_Completed_1"> 
       <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="arc"> 
        <EasingDoubleKeyFrame KeyTime="0" Value="-555"> 
         <EasingDoubleKeyFrame.EasingFunction> 
          <BounceEase EasingMode="EaseOut"/> 
         </EasingDoubleKeyFrame.EasingFunction> 
        </EasingDoubleKeyFrame> 
        <DiscreteDoubleKeyFrame KeyTime="0:0:5" Value="-150"/> 

       </DoubleAnimationUsingKeyFrames> 
      </Storyboard> 

А в коде позади:

private void Storyboard_Completed_1(object sender, EventArgs e) 
{ 
    // Do whatever you wanted 
} 
2

Вы можете обрабатывать Completed события раскадровки в.

Storyboard myStoryboard = Resources["Storyboard1"] as Storyboard; 

if(myStoryboard != null) 
{ 
    myStoryboard.Completed += (s,e) => 
      { 
      NavigationService.Navigate(new Uri("/NextPage.xaml", UriKind.Relative)); 
      }; 
    myStoryboard.Begin(); 
} 
+0

Прошу прощения. Это не работает. после завершения 5 секунд выше анимации он должен перейти на следующую страницу. –

+0

Можете ли вы показать, как вы называете анимацию? Событие 'Completed' должно запускаться после завершения анимации. – keyboardP

+0

PLS проверка модифицировано код сейчас. вызываемый в самом файле xaml с именем «arc». –

 Смежные вопросы

  • Нет связанных вопросов^_^