9

RadioButton の IsChecked が変更されたときに可視性を変更するテンプレート化された RadioButton と Grid を使用して、次のような単純な TabControl を作成しました。

<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 を強制的に繰り返す方法はありますか?

4

1 に答える 1

0

これはあなたの質問に正確に答えるものではありませんが、多くの人がここにたどり着くのに役立つと思います:

データバインドされたリストボックス内のアイテムの開始アニメーションを繰り返したい場合、これを行う方法は 1 つだけ見つかりました。

  • リストボックスの DataContext を null に設定します (これにより項目が削除されます)。
  • リストボックスの DataContext をリスト/監視可能なコレクションに戻します (これにより、アイテムが再作成され、アニメーションでリストボックスに追加されます)。

DataContext をリセットすると、新しいリストボックス項目が作成されますが、それらはまだビューに入ったものとしてマークされていません。

あなたの質問に関して; 入り口のアニメーションをもう一度再生するには、新しいバージョンのグリッドを作成する必要があると思います。

于 2015-09-24T12:43:25.950 に答える