Windowsストアアプリケーション(Winrt、Metro、Windows 8アプリ)を構築しています。グリッドビューアニメーションで画像を表示してみます。画像がウェブから読み込まれて開かれると、セルに画像が表示されます。
そのためのストーリーボードがあります:
<Storyboard x:Name="PopupImageStoryboard">
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="image">
<EasingDoubleKeyFrame KeyTime="0" Value="100"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="240"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="image">
<EasingDoubleKeyFrame KeyTime="0" Value="100"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="240"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
そして、画像がロードされて開かれたイベントを処理するためのC#コードがあります。
private void Image_ImageOpened(object sender, RoutedEventArgs e)
{
Storyboard.SetTarget(PopupImageStoryboard, sender as Image);
PopupImageStoryboard.Begin();
}
動作しません。実行中にターゲットを変更して同じストーリーボードを再実行することはできません。しかし、複数の画像でこのアニメーションを同時に実行したいと思います。アニメーションを再利用するためのソリューションをお勧めしますか?