在WPF中创建繁忙动画的最简单方法

时间:2010-05-29 11:01:30

标签: c# wpf components busyindicator

我提到WPF中没有标准的忙控制。那么,在加载页面时,显示动画忙圈(不是进度条)的最简单方法是什么,例如浏览器显示?

如果您建议从互联网上下载控件,请确保此控件是免费的,没有许可限制(例如,如果我使用它,我将被迫使用GPL我的应用程序。)

提前谢谢

6 个答案:

答案 0 :(得分:18)

还有Sacha Barber的Circular Progress Bar。它是根据Code Project Open License获得许可的。

答案 1 :(得分:12)

答案 2 :(得分:8)

你也可以使用动画GIF,例如比较这个网站:http://www.loadinfo.net/。为您生成不同的颜色,表格,每秒帧数,透明背景。

然后添加WPF Animated GIF作为项目的参考。

创建一个以<Image gif:ImageBehavior.AnimatedSource="Images/animated.gif" />为内容的usercontrol,并为usercontrol一个依赖属性(DP)IsBusy,并对usercontrol中的方法进行回调:

`public static readonly DependencyProperty IsBusyProperty = DependencyProperty.Register("IsBusy", typeof(bool), typeof(SpinProgress), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnIsBusyChangedCallBack)));`

在这种方法中,可以执行动画gif的Play()和'Pause()'方法。
将usercontrol的IsBusy属性绑定到视图模型。

或 - 适当时 - 忽略DP以及Play()Pause()方法,并将Visibility属性绑定到视图模型。

答案 3 :(得分:4)

您可以在应用程序繁忙时实施处理轮。虽然WPF不支持任何GIF图像,但您必须使用动画。下面是FrameAnimation旋转轮的一个很好的链接。

http://www.codeproject.com/Articles/29545/FrameBasedAnimation-Animating-multiple-properties

答案 4 :(得分:3)

我最近上传了一个到codeplex。它允许您自定义它(即使在运行时)。您可以从here下载。示例演示也已上传。

答案 5 :(得分:0)

我最近实施了一个看起来像iPhone忙碌指示器,here解释。