GridViewからアイテムを追加または削除するときに独自のアニメーションを作成するにはどうすればよいですか? たとえば、色を暗い色から明るい色に変更します。
アイテムがグリッドの場合:
<Grid.Transitions>
--> There can be only predefinied *ThemeTransitions?
</Grid.Transitions>
これを行う他の方法はありますか?
GridViewからアイテムを追加または削除するときに独自のアニメーションを作成するにはどうすればよいですか? たとえば、色を暗い色から明るい色に変更します。
アイテムがグリッドの場合:
<Grid.Transitions>
--> There can be only predefinied *ThemeTransitions?
</Grid.Transitions>
これを行う他の方法はありますか?
この時点でトランジションが事前に定義されているというティムの指摘は正しいです。ただし、Storyboard を使用してシナリオを実現できるはずです。これを行うには、おそらくいくつかの方法があります。たとえば、GridViewItem を再テンプレート化したり、新しい "Loading"/"Unloading" 視覚状態を追加したりします。ここでは、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();
}
GridView の "親" ListView に追加された行は、いくつかの方法でフィードできますが、多くの場合、何かの ObservableCollection にバインドされます。
GridView の列も ObservableCollection で管理されるため、コンテキストはかなり似ているはずです。
数日前に、コラムの管理方法 (アニメーション付き) に関する記事を公開しました。おそらくあなたを助けることができます。
http://highfieldtales.wordpress.com/2013/08/08/hacking-the-wpf-gridview-adding-the-animation/
更新: 申し訳ありませんが、ストア アプリの XAML を意味していることに後で気付きました。代わりに、私の参考文献は WPF です。
正解です。事前定義されたトランジションしか存在できません。現時点では、移行モデルは公開されていません。
GridView の ItemsSource として使用されるセットが ObservableCollection で、コード ビハインドがそのコレクションからの変更をリッスンした場合はどうなるでしょうか。その後、コード ビハインドからアニメーションを制御できます。