返回导航上触发 FluidMoveBehavior

发布于 2024-10-10 15:28:12 字数 1037 浏览 2 评论 0 原文

我正在开发一个 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> 

当我在同一屏幕上添加/删除项目时,这可以正常工作。动画完美播放。但是,当我从主页导航到新页面,然后返回时,会触发流畅的移动动画,就好像所有项目都是一次性添加的一样。有什么方法可以禁用此行为,以便仅在列表实际更改时触发动画?

I am working on a windows phone 7 application that uses the FluidMoveBehavior in some of my ListBoxes. For some reason, the FluidMoveBehavior animation seems to want to activate at inappropriate times. I currently have a ListBox on my main page, and I use the following ItemsPanelTemplate which is just a basic StackPanel with a FluidMoveBehavior attached to it:

<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> 

This works fine when I add/remove items while on the same screen. The animation plays perfectly. However, when I navigate to a new page from my main page, then navigate back, the fluid move animation is triggered as if all of the items were added at once. Is there any way to disable this behavior so it only triggers the animation when the list actually changes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生寂 2024-10-17 15:28:12

发生这种情况是因为当您导航到包含列表框的页面时,会再次创建列表框,这类似于一次添加所有项目,这会触发流体移动触发器。一种可能的(可能不是合法的)解决方案是拥有两个相同的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文