C# 定制学院动画

C# 定制学院动画,c#,xaml,animation,windows-runtime,winrt-xaml,C#,Xaml,Animation,Windows Runtime,Winrt Xaml,我必须做两种类型的动画: 你知道怎么做吗?在这种情况下,简单的过渡动画似乎没有帮助。提前感谢。在代码中,您可以尝试: DoubleAnimation a = new DaoubleAnimation(); a.From = 50; a.To = 100; a.BeginTime = "0:0:2"; b.BeginAnimation(Button.WidthProperty, a); 我认为可以通过在加载GridViewItem时启动故事板(通过重新模板化控件或在控件下面的ItemT

我必须做两种类型的动画:


你知道怎么做吗?在这种情况下,简单的过渡动画似乎没有帮助。提前感谢。

在代码中,您可以尝试:

DoubleAnimation a = new DaoubleAnimation();
a.From = 50;
a.To = 100;
a.BeginTime = "0:0:2";

b.BeginAnimation(Button.WidthProperty, a);

我认为可以通过在加载GridViewItem时启动故事板(通过重新模板化控件或在控件下面的ItemTemplate中)来实现第一个动画。见我对这个问题的回答:


对于第二个动画,看起来您首先希望在加载整个GridView时在其上运行一些平移和倾斜变换动画,然后在每个列上运行单独的缩放动画。对于缩放动画,可以检测哪些单元格位于哪个列中,将动画构建到GridViewItem或ItemTemplate中,然后手动运行这些动画。如果您不知道每列中有多少项,这可能是最好的方法(例如,因为形状系数可能会改变)。否则,也许您可以使用分组并在每个组上运行缩放动画。

我知道如何设置一个按钮的动画。我不知道如何按顺序设置一组UI项的动画。好的。你可能需要一种调度程序。也许你可以输入一个begintimeYeah,调度程序。但是怎么做呢?问题是:我不知道如何使元素在开始时的大小为0.0。当前的解决方案是这样开始的:渲染所有集合,消失所有集合,尝试每个元素都设置动画。第二个动画:如果gridview包含很多项怎么办?您只需在屏幕上最初的项上运行动画。可能有几种方法可以解决这个问题,但没有立即可用的属性。如果您使用的是显式大小,则很容易;否则,您可以在首次运行布局后侦听SizeChanged事件以获取大小。如果正在分组,则在组上运行动画应该很容易。我不太担心这里的性能,因为从提供的gif来看,一次屏幕上不应该有太多的项目。事实上,收藏中可能有数千个项目。这只是一个简单的例子。我认为收藏品中有多少物品并不重要。使用虚拟化面板,只需在屏幕上的容器上运行动画。假设您有10k个项目,但当GridView最初加载时,屏幕上的视口中将仅显示20个项目-只需在承载这些初始20个项目的20个容器上运行动画即可。