【问题标题】:WPF Loading animationWPF 加载动画
【发布时间】:2009-07-29 08:32:23
【问题描述】:

我有一个 ListView,其中包含许多要在搜索中加载的项目。 而且我想为用户提供更丰富的用户界面,以便在加载时,我会显示一个旋转的圆圈(从 AJAX 等待中得知)

我意识到我将不得不进入线程或其他东西,但由于我以前从未在 WPF 中这样做过,我确信有比 WPF 中的线程(或简单的 BackgroundWorker)更好的东西。

无论如何,关键是在加载时显示该动画。 任何想法?谢谢!

【问题讨论】:

    标签: wpf search animation asynchronous


    【解决方案1】:

    好的,我现在有一个可行的解决方案。

    我有一个包含该动画的 UserControl。它位于我的 XAML 代码中的某处,如下所示:<customControls:LoadingAnimation x:Name="LoadingAnimation" />。该控件在需要时通过调用

    加载
    LoadingAnimation.Show();
    

    现在,当我单击一个按钮来执行耗时的工作时,在我调用 BeginInvoke() 之前,我 加载该动画。

    然后当辛苦的工作完成后我打电话给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 */;
    }
    

    【讨论】:

    • 只要有一个状态,IsSearching,并使用datatriggers来显示和隐藏用户控件
    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2012-10-08
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多