0
我有一個後臺工作,它可以根據需要工作。但我希望我的視圖中的圖像能夠在背景工作時刻不停地旋轉.DoWork被調用直到backgroundworker.completed被調用。旋轉BackgroundWorker.DoWork上的圖像
我已經嘗試了一些事件觸發器,但我無法讓它工作。關於我如何繼續這樣做的安妮建議?
我使用c#,wpf,.Net 4.0,MVVM。
BR
我有一個後臺工作,它可以根據需要工作。但我希望我的視圖中的圖像能夠在背景工作時刻不停地旋轉.DoWork被調用直到backgroundworker.completed被調用。旋轉BackgroundWorker.DoWork上的圖像
我已經嘗試了一些事件觸發器,但我無法讓它工作。關於我如何繼續這樣做的安妮建議?
我使用c#,wpf,.Net 4.0,MVVM。
BR
DoWork的是不訪問UI元素的最佳地點,因爲它不是在UI線程被炒了,你應該使用ProgressChanged事件
我建議創建RotateTransform和StoryBoard它
<Window.Resources>
<Storyboard x:Key="sbdRotation">
<DoubleAnimation
Storyboard.TargetName="image"
Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)"
By="6" Duration="0:0:0.2"
RepeatBehavior="1x"/>
</Storyboard>
</Window.Resources>
...
<Image Name="image" Width="50" Height="50" Source="OK.png">
<Image.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" />
</Image.LayoutTransform>
</Image>
在ProgressChanged事件中,查找帶有FindResource(「sbdRotation」)的StoryBoard;並致電Begin
FindResources是否與MVVM模型一致? – Sulby
是的,如果你從視圖中調用它,而不是從視圖模型 –
但我的vackground工作人員正在從視圖模型運行。那麼我怎麼才能從後面的代碼中訪問ProGress更改的事件? – Sulby