2013-05-30 109 views
1

我有多線程的WPF應用程序。我的應用程序中有一個小程序在後臺運行,一旦完成,用戶界面將更新結果。WPF圖像動畫

我已經實現了功能,它運行得很好。我只想爲我的應用程序創建如下所示的動畫處理圖像,以便在UI更新之前它將繼續運行。我並不擅長Expression混合來創建這種動畫。

http://www.google.com/imgres?imgurl=https://www.sunvalleywellness.org/img/animation_processing.gif&imgrefurl=http://www.sunvalleywellness.org/&h=200&w=200&sz=55&tbnid=d4OPzhVnCB_kNM:&tbnh=90&tbnw=90&zoom=1&usg=__KPnWRjNlWm-AuZg0lavRE5lzMcA=&docid=JZavNcJukA3ZwM&sa=X&ei=SlenUcG-DIjtqwGMqYHAAQ&ved=0CDMQ9QEwAg&dur=733

你能請幫助我創建。我

感謝

回答

0

在您的視圖模型或DataContext的,必須有一個布爾屬性來完成它。此屬性應指示是否在後臺工作,例如:IsWorking。當您開始作業時,將該屬性設置爲true,當您完成作業時,將其設置爲false。看到這個示例代碼爲您DataContext類:

var currentSyncContext = SynchronizationContext.Current; 
var backgroundWorker = new BackgroundWorker(); 
backgroundWorker.DoWork += (_,__) => 
         { 
          currentSyncContext.Send((t)=>{IsWorking = true;},null);  //this is for change the visual tree from another thread 
          //Here write the job you want to do... 
          currentSyncContext.Send((t)=>{IsWorking = false;},null); //this is for change the visual tree from another thread 
         }; 
backgroundWorker.RunWorkerAsync(); 

然後在你XAML代碼,您需要將圖像或控制的可視性綁定到這個屬性,使用BooleanToVisibilityConverter。

我認爲這是做這件事的經典方式。希望適合你...

+0

我明白這一點。我已經實現了。我需要UI的圖像處理控制。如何使用動畫製作該圖像 – user2203652

+0

您可以使用RotateTransform爲Image控件(帶有您想要的圖像)製作動畫,並使其永久重複(它是一個布爾值或枚舉值)。然後隱藏或顯示任何你想要的控制。 –