为什么我的动画在第一次加载窗口时没有显示?

时间:2015-12-07 03:25:54

标签: c# wpf animation

我有一个窗口,其基本动画设置在窗口加载时运行。

这是窗口中的动画:

<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();

0 个答案:

没有答案