【发布时间】:2020-01-16 00:18:57
【问题描述】:
我发现只有一种方法可以延长启动画面的显示时间。
这是将 ApplicationDefinition 更改为 Page 并进行配置的时候了。
但我需要 ApplicationDefinition,我在这里找到了定位器,如果我使用页面,它会丢失。
所以我想在显示主窗体之前让 SpashScreen 显示时间和延迟更长,但我也想保存 ApplicationDefinition。
谢谢。
【问题讨论】:
标签: wpf
我发现只有一种方法可以延长启动画面的显示时间。
这是将 ApplicationDefinition 更改为 Page 并进行配置的时候了。
但我需要 ApplicationDefinition,我在这里找到了定位器,如果我使用页面,它会丢失。
所以我想在显示主窗体之前让 SpashScreen 显示时间和延迟更长,但我也想保存 ApplicationDefinition。
谢谢。
【问题讨论】:
标签: wpf
Use the explicit way of showing the splash screen 并将 false 传递给 Show 方法。
这样,当您想要关闭启动画面时,您必须显式调用 Close()。
【讨论】:
我打开了 App.xaml 文件,并进行了这些更改以“延迟”显示。
public partial class App : Application
{
App()
{
// Pause to show the splash screen for 3 seconds
System.Threading.Thread.Sleep(3000);
}
}
【讨论】:
await TaskEx.Delay(1000)
正如 Jake Glines 所写,您可以使用 System.Threading
using System.Threading;
public MainWindow()
{
SplashScreen splash = new SplashScreen("splash.jpg");
splash.Show(true);
Thread.Sleep(1500);
InitializeComponent();
}
或者你可以在它上面使用计时器/进度条,让它依赖于真实的加载,而不仅仅是想象的。
【讨论】:
另一种方法是查找 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 秒。
【讨论】: