У меня есть следующая раскадровка:
<Window.Resources>
<Storyboard x:Key="ButtonsAnim">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="topRightButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="-100"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="topRightButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="100"/>
...
Он в основном перемещает некоторые кнопки на холсте.
Это код, который запускает анимацию:
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Storyboard sb = (Storyboard)Resources["ButtonsAnim"];
storyBoard = sb;
storyBoard.Begin(this, true);
}
Что я пытаюсь сделать, это сбросить анимацию, когда я нажимаю кнопку, которая скрывает окно. Когда окно появляется снова, анимация должна начинаться с начала.
Я пытался использовать storyBoard.Begin (это правда), когда приложение появляется снова, но в течение первых миллисекунд кнопки находятся в последней позиции.
Затем я попробовал storyBoard.seek (TimeSpan.Zero), прежде чем скрыть окно, но оно не работает:
System.Windows.Media.Animation
Предупреждение: 6: Невозможно выполнить действие
потому что указанный раскадровка была
никогда не применяется к этому объекту для
интерактивное управление .; Действие = 'Seek';
StoryBoard = 'System.Windows.Media.Animation.Storyboard';
Storyboard.HashCode = '24901833';
Storyboard.Type = 'System.Windows.Media.Animation.Storyboard';
TargetElement = 'System.Windows.Media.Animation.Storyboard';
TargetElement.HashCode = '24901833';
TargetElement.Type = 'System.Windows.Media.Animation.Storyboard'
Я также пробовал storyBoard.remove (this) перед тем, как скрыть окно, тот же эффект: кнопки находятся в последней позиции.
Есть идеи?
Спасибо.