【问题标题】:Where is the best place to show the splash screen using prism 7使用 prism 7 显示启动画面的最佳位置在哪里
【发布时间】:2019-09-01 11:24:52
【问题描述】:

我是 wpf 和 prism 的新手。我创建了一个包含进度条的启动窗口,它的值在后台工作程序中从 0 变为 100。 我不知道在哪里显示启动画面并关闭它。

我尝试在解析 shell 之前显示启动画面,但最终导致启动画面和 shell 一起打开,并且也不知道在哪里关闭启动画面。

protected override Window CreateShell()
{
    Views.SplashScreen splashScreen = new Views.SplashScreen();
    splashScreen.Show();

    return Container.Resolve<Shell>();
}

谢谢。

【问题讨论】:

标签: wpf prism splash-screen


【解决方案1】:

正如somewhere else 所写,InitializeModules 是处理启动画面的好方法:

internal class App : PrismApplication
{
    // [...]
    protected override void InitializeModules()
    {
        var splashScreen = new SplashScreen( "myLogo.png" );
        splashScreen.Show( false );
        try
        {
            base.InitializeModules();
        }
        finally
        {
            splashScreen.Close( TimeSpan.Zero );
        }
    }
}

【讨论】:

  • 这个解决方案工作正常,除非我想让我的启动画面做一些虚假的加载进度(它确实如此)但是这里try 块发生在不到一秒的时间内,finally 在它之前关闭了启动画面进度完成。另一个问题是我在窗口的showclose 中没有任何参数,也不知道它们的用途。
  • 查看SplashScreen 类的参数,但你可以自己滚动,框架提供的只是一个建议。如果您确实需要减慢应用的初始化速度,您可以在模块的初始化中添加任何您喜欢的内容,或者直接添加到 try-block 中。
猜你喜欢
  • 1970-01-01
  • 2011-07-02
  • 2011-10-21
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多