从GridView XAML添加或删除项目时的动画

时间:2013-08-09 21:48:10

标签: xaml animation windows-8 winrt-xaml

如何在GridView中添加或删除项目时创建自己的动画?例如,从深色变为浅色 如果Item是Grid:

<Grid.Transitions>
        --> There can be only predefinied *ThemeTransitions?       
 </Grid.Transitions>

是否有其他方法可以做到这一点?

4 个答案:

答案 0 :(得分:1)

蒂姆是正确的,在这一点上预先定义了过渡。但是,您应该能够使用Storyboard实现您的场景。可能有几种方法可以做到这一点,例如:重新尝试GridViewItem并添加新的“加载”/“卸载”视觉状态。以下是通过将Storyboard放在ItemTemplate中来实现场景的简单方法:

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