重复EntranceThemeTransition

时间:2013-01-26 22:57:08

标签: windows-8 winrt-xaml

我使用模板化的RadioButtons和网格完成了一个简单的TabControl,当RadioButton上的IsChecked发生变化时,它会改变可见性,如下所示:

<Grid Name="TabGrid">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Orientation="Horizontal">
            <RadioButton x:Name="RadioButton1" Content="Latest" Style="{StaticResource TabRadioButtonStyle}" IsChecked="True" GroupName="G1"/>
            <RadioButton x:Name="RadioButton2" Content="Popular" Style="{StaticResource TabRadioButtonStyle}" IsChecked="False" GroupName="G1" Margin="30,0,0,0" />
        </StackPanel> 

现在,里面的每个网格都定义了EntranceThemeTransition,如下所示:

        <GridGrid.Row="1" Visibility="{Binding ElementName=RadioButton1, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}">
            <Grid.ChildrenTransitions>
                <TransitionCollection>
                    <EntranceThemeTransition />
                </TransitionCollection>
            </Grid.ChildrenTransitions>

据我了解,EntranceThemeTransition仅在首次显示项目时显示。有没有办法强制EntranceThemeTransition每次网格的可见性改变时重复?

1 个答案:

答案 0 :(得分:0)

这并没有准确回答你的问题,但我认为这将有助于许多人登陆:

如果你想重复数据绑定列表框中项目的入口动画,我发现只有一种方法可以做到这一点:

  • 将列表框的DataContext设置为null(这将删除项目)。
  • 将列表框的DataContext设置回列表/可观察集合(这会重新创建项目,并通过动画将它们添加到列表框中)。

通过重新设置DataContext,您将创建新的列表框项目,但它们尚未标记为已进入视图。

关于你的问题;我认为你需要创建一个新版本的网格来再次播放入口动画。