【问题标题】:WPF SplashScreen , how to make splashscreen showing longerWPF SplashScreen ,如何使启动画面显示时间更长
【发布时间】:2020-01-16 00:18:57
【问题描述】:

我发现只有一种方法可以延长启动画面的显示时间。

这是将 ApplicationDefinition 更改为 Page 并进行配置的时候了。

但我需要 ApplicationDefinition,我在这里找到了定位器,如果我使用页面,它会丢失。

所以我想在显示主窗体之前让 SpashScreen 显示时间和延迟更长,但我也想保存 ApplicationDefinition。

谢谢。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    Use the explicit way of showing the splash screen 并将 false 传递给 Show 方法。

    这样,当您想要关闭启动画面时,您必须显式调用 Close()。

    【讨论】:

    • SplashScreen 自动与 .net 4 上的 ApplicationDefinition 一起工作
    • 是的,但显然它不能按照您想要的方式工作,因为它只会等到所有资源都加载完毕。如果您想调整时间,您必须明确显示并关闭启动画面。
    • 对不起,我不明白。你能解释一下吗?
    • 你说“它只等到所有资源都加载完毕”,所以这次我需要放慢速度。
    • 那是你使用隐式方式显示启动画面的时候。当您使用控制权的明确方式时。
    【解决方案2】:

    我打开了 App.xaml 文件,并进行了这些更改以“延迟”显示。

    public partial class App : Application
    {
        App()
        {
            // Pause to show the splash screen for 3 seconds
            System.Threading.Thread.Sleep(3000);
        }
    }
    

    【讨论】:

    • 冻结 UI 线程的 vad 解决方案。最好使用 TAP await TaskEx.Delay(1000)
    【解决方案3】:

    正如 Jake Glines 所写,您可以使用 System.Threading

    using System.Threading;
    
    public MainWindow()
    {           
      SplashScreen splash = new SplashScreen("splash.jpg");
      splash.Show(true);
      Thread.Sleep(1500);           
      InitializeComponent();
    }
    

    或者你可以在它上面使用计时器/进度条,让它依赖于真实的加载,而不仅仅是想象的。

    【讨论】:

      【解决方案4】:

      另一种方法是查找 App.g.cs 文件及其 Main():

             public static void Main() {
                  SplashScreen splashScreen = new SplashScreen("splash.jpg");
                  splashScreen.Show(true);
                  Thread.Sleep(3000);           
                  someNameSpace.App app = new someNameSpace.App();
                  app.Run();
             }
      

      其中唯一新添加的字段是Thread.Sleep(3000);,这会将启动画面的显示延迟 3 秒。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-17
        • 2012-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多