【问题标题】:Custom list, moving stuff up automatically after removal in Windows Phone自定义列表,在 Windows Phone 中删除后自动上移
【发布时间】:2013-08-14 19:03:03
【问题描述】:

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

我的 DoubleAnimation 淡化网格:

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

【问题讨论】:

  • 确保启用依赖动画。
  • 如何启用依赖动画?

标签: c# list windows-phone-8 windows-phone scrollview


【解决方案1】:

1) 使用动画淡出和向上滑动。对于淡入淡出,您将对 Opacity 属性执行 DoubleAnimation。对于向上滑动项目,您将对 TranslateTransform 属性进行动画处理。请参阅这些 MSDN 指南:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206955(v=vs.105).aspxhttp://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();

propertypath 的语法,但不是很完美,但你明白了。你可以在这里看到另一个特别提到不透明度的例子:http://blogs.msdn.com/b/silverlight_sdk/archive/2008/03/21/silverlight-animations-a-walkthrough.aspx

【讨论】:

  • 首先:非常感谢您的帮助和回答!我实际上创建了一个双动画来为不透明度属性设置动画,但我无法在网格上应用/运行,没有像“.beginanimation”或类似的东西。我会发布我的双动画
  • 您需要将动画添加到情节提要中,然后您就可以开始了 - 我将使用此链接中的示例编辑答案:msdn.microsoft.com/en-us/library/…
  • 所以现在我已经设法淡化了东西,但是当我从列表中删除一个东西时,我已经设法淡出它,但是我真的不能让下面的网格向上滑动,我真的需要一些帮助。还有一个小问题——因为我的自制列表中的每个网格都需要能够在双击时淡出,是否有任何方法可以将该功能添加到所有网格,或者我必须一个一个地做?
  • 对于第一个问题 - 您需要从淡入淡出动画中捕获 Completed 事件,并通过为网格的 TranslateTransform 属性的 Y 属性设置动画来启动第二个动画以向上滑动其他控件。有关 TranslateTransform 动画如何工作的详细信息,请参阅答案中我第 1 点中的第 2 个链接。您需要为要删除的网格下方的所有网格启动该动画。
  • 对于第二个问题 - 您可以创建一个包含您的网格的自定义用户控件,并为两个动画创建故事板作为 XAML 中的资源,然后添加方法来启动动画。有关用户控件的一些信息:msdn.microsoft.com/en-us/library/…codeproject.com/Articles/159446/…
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
相关资源
最近更新 更多