在wpf中加载窗口时使用等待图标
我正在编写一个wpf应用程序,它通过单击一个按钮从excel工作表中提取数据,并加载另一个窗口,其中有一个datagrid显示结果 现在加载第二个窗口需要10-12秒,在此期间,我的应用程序冻结。现在我想要的是显示一个小的圆形带状按钮,它将旋转并显示“请稍候”文本。这将显示在第一个窗口的中心,第一个窗口的其他内容将变暗 加载第二个窗口后,第一个窗口关闭。在wpf中加载窗口时使用等待图标,wpf,Wpf,我正在编写一个wpf应用程序,它通过单击一个按钮从excel工作表中提取数据,并加载另一个窗口,其中有一个datagrid显示结果 现在加载第二个窗口需要10-12秒,在此期间,我的应用程序冻结。现在我想要的是显示一个小的圆形带状按钮,它将旋转并显示“请稍候”文本。这将显示在第一个窗口的中心,第一个窗口的其他内容将变暗 加载第二个窗口后,第一个窗口关闭。 请告诉我怎么做。问题解决了。非常感谢你的帮助。下面是我使用的代码 namespace ScoreX { pu
请告诉我怎么做。问题解决了。非常感谢你的帮助。下面是我使用的代码
namespace ScoreX
{
public partial class Score : Window
{
Applications ap;
public Score()
{
InitializeComponent();
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
//cb is Circular progress bar
cbProgress.Visibility = Visibility.Hidden;
//Some codes
}
private void btnProceed_Click(object sender, RoutedEventArgs e)
{
//Some lines of Codes
Thread t1 = new Thread(new ThreadStart(CalculateData));
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
cbProgress.Visibility = Visibility.Visible;
}
private void CalculateData()
{
//Some codes
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate()
{
ap = new Applications();
this.Close();
ap.ShowDialog();
}
);
}
问题解决了。非常感谢你的帮助。下面是我使用的代码
namespace ScoreX
{
public partial class Score : Window
{
Applications ap;
public Score()
{
InitializeComponent();
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
//cb is Circular progress bar
cbProgress.Visibility = Visibility.Hidden;
//Some codes
}
private void btnProceed_Click(object sender, RoutedEventArgs e)
{
//Some lines of Codes
Thread t1 = new Thread(new ThreadStart(CalculateData));
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
cbProgress.Visibility = Visibility.Visible;
}
private void CalculateData()
{
//Some codes
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate()
{
ap = new Applications();
this.Close();
ap.ShowDialog();
}
);
}
您可能需要为长时间运行的进程使用后台线程,并使用调度程序来确保UI得到更新。事实上,我写了一篇关于这种情况的文章,你可能会发现这很有用。我也有同样的问题并解决了。看看这个。它可能会对您有所帮助:您可能希望为长时间运行的进程使用一个后台线程,并使用调度程序来确保您的UI得到更新。事实上,我写了一篇关于这种情况的文章,你可能会发现这很有用。我也有同样的问题并解决了。看看这个。它可能会帮助你: