删除Silverlight动画

删除Silverlight动画,silverlight,animation,Silverlight,Animation,我的Silverlight动画有一个问题,似乎无法修复。这个问题似乎已经确定,但用于解决它的技术在我的案例中似乎不起作用 下面是我用来制作名为“underGrid”的网格动画的情节提要代码。underGrid是一个基础网格,我正在对其应用缩放和位置偏移,以响应用户的鼠标输入,以便他们可以实时缩放和移动网格。下面的ResetGrid情节提要只是将当前比例和位置值设置为缩放{1,1}和位置{0,0}的动画,从而为用户重置视图。我希望能够在用户单击重置按钮时应用此动画,但一旦运行一次,它就会冻结缩放和

我的Silverlight动画有一个问题,似乎无法修复。这个问题似乎已经确定,但用于解决它的技术在我的案例中似乎不起作用

下面是我用来制作名为“underGrid”的网格动画的情节提要代码。underGrid是一个基础网格,我正在对其应用缩放和位置偏移,以响应用户的鼠标输入,以便他们可以实时缩放和移动网格。下面的ResetGrid情节提要只是将当前比例和位置值设置为缩放{1,1}和位置{0,0}的动画,从而为用户重置视图。我希望能够在用户单击重置按钮时应用此动画,但一旦运行一次,它就会冻结缩放和平移变换(如下所述:)。这意味着当用户使用鼠标移动网格时,网格不会移动。我已经尝试了所有我能想到的方法来阻止动画对依赖属性产生影响。我尝试挂接已完成的事件并尝试(除其他外),停止动画,将动画搜索为0,循环通过ResetGrid子项并使用StoryBoard.SetTarget()。我还尝试设置填充行为。。无论我做什么,似乎都没有什么不同,缩放和平移总是被点击,不能在用户代码中再次设置

有谁能建议我可以尝试上面没有列出的东西(激烈或其他:)?我所希望的是动画已经完全停止,并在完成时自动分离

故事板XAML:

  <Storyboard x:Name="ResetGrid">
   <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="underGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
    <EasingDoubleKeyFrame KeyTime="00:00:00.5000000" Value="0">
     <EasingDoubleKeyFrame.EasingFunction>
      <CubicEase EasingMode="EaseInOut"/>
     </EasingDoubleKeyFrame.EasingFunction>
    </EasingDoubleKeyFrame>
   </DoubleAnimationUsingKeyFrames>
   <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="underGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
    <EasingDoubleKeyFrame KeyTime="00:00:00.5000000" Value="0">
     <EasingDoubleKeyFrame.EasingFunction>
      <CubicEase EasingMode="EaseInOut"/>
     </EasingDoubleKeyFrame.EasingFunction>
    </EasingDoubleKeyFrame>
   </DoubleAnimationUsingKeyFrames>
   <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="underGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
    <EasingDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1">
     <EasingDoubleKeyFrame.EasingFunction>
      <CubicEase EasingMode="EaseInOut"/>
     </EasingDoubleKeyFrame.EasingFunction>
    </EasingDoubleKeyFrame>
   </DoubleAnimationUsingKeyFrames>
   <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="underGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
    <EasingDoubleKeyFrame KeyTime="00:00:00.5000000" Value="1">
     <EasingDoubleKeyFrame.EasingFunction>
      <CubicEase EasingMode="EaseInOut"/>
     </EasingDoubleKeyFrame.EasingFunction>
    </EasingDoubleKeyFrame>
   </DoubleAnimationUsingKeyFrames>
  </Storyboard>

会重置网格。停止()工作吗? 我在我的应用程序中使用了它,动画立即被切断。 animation.stop将停止并重置,而animation.pause将仅在时间线到达的位置停止 如果不是,你可以放置另一个持续时间为0的动画,
调用此动画以重新放置属性

我以前也遇到过此问题。。。请在Silverlight.Net上查看此线程,我认为这可能会对您有所帮助: