专业人士的快速提问。我有一个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>
答案 0 :(得分:1)
您可以使用系统转换(在您的情况下为RepositionTransition),而不是使用故事板。这样,您只需修改Canvas.Left属性,并使用与全局OS UX一致的转换时间自动动画。