我有一个可以根据需要工作的后台工作人员。但是我希望我的视图中的图像从调用 backgroundworker.DoWork 到调用 backgroundworker.completed 的那一刻持续旋转。
我已经尝试了一些事件触发器,但我无法让它工作。关于我如何处理这个问题的任何建议?
我使用 c#、wpf、.Net 4.0、MVVM。
BR
我有一个可以根据需要工作的后台工作人员。但是我希望我的视图中的图像从调用 backgroundworker.DoWork 到调用 backgroundworker.completed 的那一刻持续旋转。
我已经尝试了一些事件触发器,但我无法让它工作。关于我如何处理这个问题的任何建议?
我使用 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;并调用开始