我有一个ListView与许多要在搜索中加载的项目。 我想为用户提供更丰富的用户界面,以便在加载时,我会显示一个旋转圆圈(从AJAX等待中已知)。我知道我将不得不进入线程或其他东西,但因为我从来没有在WPF中做过这件事,所以我确信有比WPF中的线程更好的东西(或者一个简单的BackgroundWorker)。WPF加载动画
无论如何,重点是在加载时显示该动画。 有什么想法?谢谢!
我有一个ListView与许多要在搜索中加载的项目。 我想为用户提供更丰富的用户界面,以便在加载时,我会显示一个旋转圆圈(从AJAX等待中已知)。我知道我将不得不进入线程或其他东西,但因为我从来没有在WPF中做过这件事,所以我确信有比WPF中的线程更好的东西(或者一个简单的BackgroundWorker)。WPF加载动画
无论如何,重点是在加载时显示该动画。 有什么想法?谢谢!
好,我已经有了一个可行的解决方案了。
我有一个用户控件包含该动画。它位于我的XAML代码中,如下所示:<customControls:LoadingAnimation x:Name="LoadingAnimation" />
。当通过调用
LoadingAnimation.Show();
现在,当我点击一个按钮做耗时的工作,之前我调用BeginInvoke()我 加载动画neede该控件加载。
然后,当艰苦的工作完成后,我打电话LoadingAnimation.Hide().
很简单!我为其他人添加代码:
private void SearchClick(object sender, RoutedEventArgs e)
{
LoadingAnimation.Show();
new StringDelegate(DoSearch).BeginInvoke("TextToSearch", null, null);
}
private void DoSearch(string searchText)
{
object result = /* Do the time consuming work */
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new ResultDelagate(UpdateUserInterface), result);
}
private void UpdateUserInterface(object result)
{
LoadingAnimation.Hide();
DataContext = result as /* what you want */;
}
只是好奇,你是如何解决取消部分? – cwap 2009-08-28 06:48:15