C# 按下后退键时播放动画

C# 按下后退键时播放动画,c#,.net,windows-phone-7,animation,C#,.net,Windows Phone 7,Animation,我想在按back键时添加一个out动画,然后再实际返回。现在我只是让动画在back关键点的override方法中播放。但它并没有完全播放动画。是否有方法取消后退事件并将其添加到动画完成事件中?或者,实现这一目标的最佳方法是什么?试试以下方法: protected override void OnBackKeyPress( System.ComponentModel.CancelEventArgs e ) { if( NavigationService.CanGoBack() ) {

我想在按back键时添加一个out动画,然后再实际返回。现在我只是让动画在back关键点的override方法中播放。但它并没有完全播放动画。是否有方法取消后退事件并将其添加到动画完成事件中?或者,实现这一目标的最佳方法是什么?

试试以下方法:

protected override void OnBackKeyPress( System.ComponentModel.CancelEventArgs e )
{
  if( NavigationService.CanGoBack() ) {
    // Cancel the navigation
    e.Cancel = true;

    //Create the storyboard
    Storyboard anim = new MyCoolAnimation();

    // Hook an on complete handler
    EventHandler handler = null;
    handler = ( s, e ) => {
      // Navigate backward
      NavigationService.GoBack();

      anim.Completed -= handler;
    };
    anim.Completed += handler;

    // Start the storyboard
    anim.Begin();
  }
}
试试这个:

protected override void OnBackKeyPress( System.ComponentModel.CancelEventArgs e )
{
  if( NavigationService.CanGoBack() ) {
    // Cancel the navigation
    e.Cancel = true;

    //Create the storyboard
    Storyboard anim = new MyCoolAnimation();

    // Hook an on complete handler
    EventHandler handler = null;
    handler = ( s, e ) => {
      // Navigate backward
      NavigationService.GoBack();

      anim.Completed -= handler;
    };
    anim.Completed += handler;

    // Start the storyboard
    anim.Begin();
  }
}

马特·莱西:我不这么认为;我认为
NavigationService.CanGoBack()
在最后一页(应用程序启动时的第一页)返回
false
,这是否也可以关闭应用程序的最后一页,从而关闭它?@Matt Lacey:我不这么认为;我认为
NavigationService.CanGoBack()
返回最后一页(应用程序启动时的第一页)的
false