自定义列表,在Windows Phone中删除后自动向上移动内容

本文关键字:移动 删除 列表 Windows Phone 自定义 | 更新日期: 2023-09-27 18:27:46

所以我正在开发这个应用程序,在那里我得到了一些提醒很多关于列表的东西,但它不使用列表控件或其他东西。我添加网格&矩形到滚动查看器,当我双击一个夹点或矩形时,它会以淡入动画消失(我也需要帮助来做这件事,以及在应用程序启动时一个接一个地快速淡入),当这种情况发生时,我希望淡出(或被删除,最好的解决方案是什么?)的网格或矩形下方向上滑动,并替换空白位置。请不要误解这个问题,我不想让你帮我做,我想知道怎么做,因为我根本找不到任何解决方案。它有点像谷歌现在在安卓和iphone上的工作方式。我怎样才能做到最好?非常感谢!致问候,Erik

我的DoubleAnimation淡出网格:

        DoubleAnimation fadeGrid = new DoubleAnimation();
        fadeGrid.From = 0;
        fadeGrid.To = 1;
        fadeGrid.Duration = new Duration(TimeSpan.FromSeconds(0.5));
        fadeGrid.AutoReverse = false;

自定义列表,在Windows Phone中删除后自动向上移动内容

1)使用动画进行淡出和向上滑动。对于渐变,您将在"不透明度"特性上执行DoubleAnimation。对于向上滑动项目,您将在TranslateTransform属性上执行动画化。请参阅以下MSDN指南:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206955(v=vs.105).aspx和http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.media.translatetransform(v=vs.105).aspx

2) 为了真正正确地向上移动,您需要从动画中捕获Completed事件(http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.media.animation.timeline.completed(v=vs.105).aspx)。动画制作完成后,从ScrollViewer内的StackPanel中删除这些控件,并撤消对其下方项目所做的任何位置动画,以使它们"向上滑动"。

3) 创建动画后,您需要将其添加到故事板中:

Storyboard sb = new Storyboard();
sb.Children.Add(fadeGrid);
Storyboard.SetTarget(fadeGrid, myRectangle);
Storyboard.SetTargetProperty(fadeGrid, new PropertyPath("(UIElement.Opacity)"));
sb.Begin();

属性路径的语法虽然不太完美,但你已经明白了。您可以在此处看到另一个特别提到不透明性的示例:http://blogs.msdn.com/b/silverlight_sdk/archive/2008/03/21/silverlight-animations-a-walkthrough.aspx