我有一个窗口,其基本动画设置在窗口加载时运行。
这是窗口中的动画:
<Window.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard Duration="00:00:2" Storyboard.TargetProperty="Opacity">
<DoubleAnimation From="0" To="1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
供参考,以下是此窗口的打开方式:
PreferencesWindow PrefWindow = new PreferencesWindow();
PreferencesWindowViewModel PrefWindowViewModel = new PreferencesWindowViewModel();
PrefWindow.DataContext = PrefWindowViewModel;
PrefWindow.Owner = p as MainWindow;
PrefWindow.ShowDialog();
这是在一个从ICommand调用的函数中。
第一次打开窗口时,它似乎什么都不做,然后突然出现窗口。然后,您打开窗口的所有时间都会播放动画。为什么动画首次打开时不会播放?我应该改变什么?
PS,它不是由旧窗口背后的新窗口造成的,我尝试了其他动画,它从屏幕右侧滑入,并试图将新窗口的尺寸小于新窗口。编辑: ICommand回应评论:
private ICommand openPreferences;
public ICommand OpenPreferences
{
get
{
if (openPreferences == null)
{
openPreferences = new RelayCommand(OpenPreferencesEx, null);
}
return openPreferences;
}
}
private void OpenPreferencesEx(object p)
{
PreferencesWindow PrefWindow = new PreferencesWindow();
PreferencesWindowViewModel PrefWindowViewModel = new PreferencesWindowViewModel();
PrefWindow.DataContext = PrefWindowViewModel;
PrefWindow.Owner = p as MainWindow;
PrefWindow.ShowDialog();