0

专业人士的快速问题。我的页面中央有一个 userControl。点击页面时,我想使用 doubleAnimation 将控件停靠在页面左侧。

此行 To="{Binding Canvas.Left}" 不起作用。我必须指定一个值。例如。-200 将动画(TranslateX)向左移动,但对于某些屏幕,它永远不会到达页面的左侧。我该如何处理?此外,页面的点击事件是否是检查页面上第一次交互的正确位置,因为它应该只在用户第一次交互时发生?

在我后面的代码中,我想使用 if(usercontrol.left > 0){storyboard.begin;} 之类的东西。实现这一目标的最佳方法是什么?

我可能还得放一个 From={Binding UserControl.CurrentPosition}

谢谢

<Page.Resources>
    <Storyboard x:Name="EntryAnimation">
      <DoubleAnimation Duration="0:0:1"
                       To="{Binding Canvas.Left}" 
                       Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)"
                       Storyboard.TargetName="idcMain"
                       d:IsOptimized="True" />
    </Storyboard>
  </Page.Resources>
4

1 回答 1

1

您可以使用系统转换(在您的情况下为 RepositionTransition),而不是使用情节提要。这样,您只需修改 Canvas.Left 属性,它就会使用与全局 OS UX 一致的过渡时间自动进行动画处理。

于 2013-08-30T17:23:32.947 回答