如何在GridView中添加或删除项目时创建自己的动画?例如,从深色变为浅色 如果Item是Grid:
<Grid.Transitions>
--> There can be only predefinied *ThemeTransitions?
</Grid.Transitions>
是否有其他方法可以做到这一点?
答案 0 :(得分:1)
MainPage.xaml中:
<GridView x:Name="MyGV">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Loaded="Grid_Loaded" x:Name="TemplateRoot" Opacity="0" Background="White">
<Grid.Resources>
<Storyboard x:Key="LoadedStoryboard">
<DoubleAnimation Storyboard.TargetName="TemplateRoot"
Storyboard.TargetProperty="Opacity"
BeginTime="0:0:1"
Duration="0:0:5"
To="1" />
</Storyboard>
</Grid.Resources>
<TextBlock Text="{Binding}" FontSize="24" Foreground="Black" Margin="40" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
MainPage.xaml.cs中:
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
Storyboard sb = ((Grid)sender).Resources["LoadedStoryboard"] as Storyboard;
sb.Begin();
}
示例源代码在此处托管: https://github.com/finnigantime/Samples/tree/master/examples/Win8Xaml/GridViewItemLoadedUnloadedAnimations
答案 1 :(得分:0)
如果用作GridView的ItemsSource的集合是ObservableCollection并且您的代码后面的代码是否从该集合中进行了更改,该怎么办?然后从后面的代码中你可以控制动画。
答案 2 :(得分:0)
正确,只能有预定义的过渡。此时,过渡模型不会公开曝光。
答案 3 :(得分:0)
添加到GridView的“父”ListView的行可以通过多种方式提供,但通常绑定到某个ObservableCollection。
GridView的列也受ObservableCollection控制,因此上下文应非常相似。
我发布了一篇关于如何在几天前管理列管理(带动画)的文章。也许可以帮到你。
http://highfieldtales.wordpress.com/2013/08/08/hacking-the-wpf-gridview-adding-the-animation/
更新:原谅我,但后来我意识到你的意思是XAML for Store应用程序。我的参考是针对WPF的。