我在 WPF 中的应用程序加载外部资源,因此我想在程序加载时显示加载表单。
我尝试创建表单,并在加载代码之前显示,并在加载结束时关闭。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
LoadForm lf = new LoadForm();
lf.Visibility = Visibility.Visible;
// Al code that delays application loading
lf.Close();
}
但我得到的唯一结果是,当加载进度完成并立即关闭时,会显示表单。
我认为我需要使用 System.Threading 但不确定。
Thanks.
Note我在 Window_Loaded() 方法中加载所有应用程序外部资源,而不是在主类方法中。
您应该查看这篇关于创建启动画面 http://msdn.microsoft.com/en-us/library/cc656886.aspx在 WPF 中。本质上,您将要显示的图像添加到项目中,并将构建操作设置为 SplashScreen,它将在程序启动时显示,并在显示主应用程序窗口时消失。
您也可以尝试导入System.ComponentModel
类别及用途后台工作者 http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx显示您的加载表单,它将允许您保留 UI 的响应能力。
public partial class MainWindow : Window
{
Window1 splash;
BackgroundWorker bg;
public MainWindow()
{
InitializeComponent();
bg = new BackgroundWorker();
bg.DoWork += new DoWorkEventHandler(bg_DoWork);
bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
}
void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
splash.Hide();
}
void bg_DoWork(object sender, DoWorkEventArgs e)
{
System.Threading.Thread.Sleep(10000);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
splash = new Window1();
splash.Show();
bg.RunWorkerAsync();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)