C# 在onStartup完成之前,动画不会开始
我正在开发一个WPF,C应用程序 由于加载过程非常长,我们需要创建一个动画启动屏幕,以便在应用程序加载时显示 问题是所有初始化代码都在OnStartup方法中。 我注意到,在OnStartup完成之前,动画不会启动,因此我猜在应用程序启动结束之前,您无法显示任何动画 我的假设正确吗?如果是,是否有办法在启动完成之前显示动画,或者我应该将代码移到另一个地方?我不喜欢这样做,因为这将是应用程序流程中的一个巨大变化 编辑 我尝试使用一个新线程并使用dispatcher启动splash,但直到OnStartup完成后,dispatcher的调用才启动 你应该做:C# 在onStartup完成之前,动画不会开始,c#,wpf,animation,splash-screen,C#,Wpf,Animation,Splash Screen,我正在开发一个WPF,C应用程序 由于加载过程非常长,我们需要创建一个动画启动屏幕,以便在应用程序加载时显示 问题是所有初始化代码都在OnStartup方法中。 我注意到,在OnStartup完成之前,动画不会启动,因此我猜在应用程序启动结束之前,您无法显示任何动画 我的假设正确吗?如果是,是否有办法在启动完成之前显示动画,或者我应该将代码移到另一个地方?我不喜欢这样做,因为这将是应用程序流程中的一个巨大变化 编辑 我尝试使用一个新线程并使用dispatcher启动splash,但直到OnSta
protected override void OnStartup(StartupEventArgs e)
{
//Start your animation here.
Task.Factory.StartNew(() =>
{
//Start long loading operation here
Application.Current.Dispatcher.Invoke(
new Action(() =>
{
//Stop your animation here
//Note: it needs to run on the UI thread, so we dispatch it.
})
);
}
}
你应该做:
protected override void OnStartup(StartupEventArgs e)
{
//Start your animation here.
Task.Factory.StartNew(() =>
{
//Start long loading operation here
Application.Current.Dispatcher.Invoke(
new Action(() =>
{
//Stop your animation here
//Note: it needs to run on the UI thread, so we dispatch it.
})
);
}
}
使用动画创建一个新窗口。首先启动此窗口,然后在其启动时创建主窗口,并在加载主窗口后关闭第一个窗口。。您可以将“动画”窗口设置为“始终在顶部”,以防止主窗口覆盖动画。使用动画创建新窗口。首先启动此窗口,然后在其启动时创建主窗口,并在加载主窗口后关闭第一个窗口。。您可以将动画窗口设置为始终在顶部,以防止主窗口覆盖动画。加载过程是否在单独的线程中完成?加载过程是否在单独的线程中完成?我尝试过,问题是,dispatcher.Invoke在OnStartup完成之前也不会启动。OnStartup应在到达Task.Factory.StartNew后立即返回,因为它在单独的线程中运行。但OnStartup运行时应显示初始屏幕。所有沉重的逻辑都在OnStartUpport中。请注意我在示例中设置的注释。您的长时间加载操作应该在任务内部运行,因此启动时返回。加载不能在UI线程上运行,否则会冻结。谢谢!!!成功了!我没有听到那句话。。非常感谢你!我花了几个小时在这件愚蠢的事情上…我试过了,问题是dispatcher.Invoke也会在OnStartup完成之前启动。OnStartup应该在到达Task.Factory.StartNew时返回,因为它在单独的线程中运行。但是在OnStartup运行时应该显示初始屏幕。所有沉重的逻辑都在OnStartUpport中。请注意我在示例中设置的注释。您的长时间加载操作应该在任务内部运行,因此启动时返回。加载不能在UI线程上运行,否则会冻结。谢谢!!!成功了!我没有听到那句话。。非常感谢你!我花了好几个小时在这件蠢事上。。。