重复EntranceThemeTransition

Igo*_*lic 8 windows-8 winrt-xaml

我有一个简单的TabControl使用模板化的RadioButtons和网格完成,当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> 
Run Code Online (Sandbox Code Playgroud)

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

        <GridGrid.Row="1" Visibility="{Binding ElementName=RadioButton1, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}">
            <Grid.ChildrenTransitions>
                <TransitionCollection>
                    <EntranceThemeTransition />
                </TransitionCollection>
            </Grid.ChildrenTransitions>
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*ndy 0

这并不能完全回答你的问题,但我认为这会帮助很多人登陆这里:

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

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

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

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