返回导航上触发 FluidMoveBehavior
我正在开发一个 Windows Phone 7 应用程序,该应用程序在我的一些列表框中使用 FluidMoveBehavior。由于某种原因,FluidMoveBehavior 动画似乎想要在不适当的时间激活。目前,我的主页上有一个 ListBox,我使用以下 ItemsPanelTemplate,它只是一个基本的 StackPanel,附加有 FluidMoveBehavior:
<ItemsPanelTemplate x:Key="fancyListBoxItemsPanelTemplate">
<StackPanel>
<Custom:Interaction.Behaviors>
<il:FluidMoveBehavior AppliesTo="Children">
<il:FluidMoveBehavior.EaseX>
<ExponentialEase EasingMode="EaseInOut"/>
</il:FluidMoveBehavior.EaseX>
<il:FluidMoveBehavior.EaseY>
<ExponentialEase EasingMode="EaseInOut"/>
</il:FluidMoveBehavior.EaseY>
</il:FluidMoveBehavior>
</Custom:Interaction.Behaviors>
</StackPanel>
</ItemsPanelTemplate>
当我在同一屏幕上添加/删除项目时,这可以正常工作。动画完美播放。但是,当我从主页导航到新页面,然后返回时,会触发流畅的移动动画,就好像所有项目都是一次性添加的一样。有什么方法可以禁用此行为,以便仅在列表实际更改时触发动画?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
发生这种情况是因为当您导航到包含列表框的页面时,会再次创建列表框,这类似于一次添加所有项目,这会触发流体移动触发器。一种可能的(可能不是合法的)解决方案是拥有两个相同的 ItemPanel 模板,一个具有行为,另一个不具有行为。当您第一次导航到该页面时,应用不带行为的模板。稍后将其替换为具有行为的那个。
希望有帮助。
this is happening because as you navigate to the page with the list box, the list box is created again, which is similar to adding all the items at once which in tuns fires the fluid move trigger. One possible (may not be the legitimate) solution is to have two identical ItemPanel template, one with the behavior and the other without it. When you first navigate to the page apply the template w/o the behavior. Later replace it with the one with the behavior.
Hope that helps.