WinRT DoubleAnimation到Canvas.Left

时间:2013-08-30 10:26:19

标签: xaml winrt-xaml .net-4.5

专业人士的快速提问。我有一个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>

1 个答案:

答案 0 :(得分:1)

您可以使用系统转换(在您的情况下为RepositionTransition),而不是使用故事板。这样,您只需修改Canvas.Left属性,并使用与全局OS UX一致的转换时间自动动画。