2010-05-29 98 views
29

我提到WPF中沒有標準的繁忙控件。那麼顯示加載頁面時瀏覽器顯示的動畫繁忙圈(而非進度欄)最簡單的方法是什麼?在WPF中創建繁忙動畫的最簡單方法

請你建議下載從互聯網控制確保這種控制是免費的且無許可限制(如我將被迫如果我用它來GPL我的應用程序)。

預先感謝您

回答

18

還有薩沙理髮Circular Progress Bar。它根據代碼項目開放許可證進行許可。

+0

我一直很喜歡他的代碼項目文章。 – 2011-01-04 01:59:34

+1

這現在已經從CodeProject – 2014-03-06 10:35:37

+2

刪除可能搬到http://www.codeproject.com/Articles/49853/Better-WPF-Circular-Progress-Bar – quetzalcoatl 2014-04-04 19:57:16

0

我最近實施了一個看起來像iPhone繁忙的指標,解釋here

+0

旋轉一個PNG文件。沒有實際繪製。對我而言,這對於WPF的優勢來說就是一切都被繪製出來,並且在任何縮放比例下看起來都很平滑。 – 2014-07-16 18:30:24

+0

@ClintStLaurent並非所有東西都必須是基於WPF的矢量。在這種情況下,成像更容易實施,並且作爲獎勵,它比矢量圖更有效率。然而,這項技術的主要觀點是改變動畫的速度以使視覺外觀變得「靜態」。所以你當然可以1)爲你的用例選擇一個大小不同的圖像,2)如果你願意,用一個路徑換出圖像。同樣的技術仍然適用。 – 2014-07-16 21:39:49

7

您還可以使用GIF動畫,例如比較本網站:http://www.loadinfo.net/。爲您生成不同的顏色,形式,每秒幀數,透明背景。

然後添加的WPF Animated GIF爲你的項目的引用。

請與<Image gif:ImageBehavior.AnimatedSource="Images/animated.gif" />作爲其內容的用戶控件,給用戶控件一個DependencyProperty(DP)IsBusy有回調的用戶控件的方法:

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

在這種方法中GIF動畫的Play()和「暫停( )'方法可以被執行。
將usercontrol的IsBusy屬性綁定到視圖模型。

或 - 當適用時 - 忽略DP和Play()Pause()方法並將Visibility屬性綁定到視圖模型。

+0

你能詳細解釋一些示例代碼嗎? – m2pathan 2015-09-30 07:08:12

3

我最近上傳了一個codeplex。它允許您自定義它(即使在運行時)。你可以從here下載它。樣本演示也上傳了。

相關問題