0

我有一个可以根据需要工作的后台工作人员。但是我希望我的视图中的图像从调用 backgroundworker.DoWork 到调用 backgroundworker.completed 的那一刻持续旋转。

我已经尝试了一些事件触发器,但我无法让它工作。关于我如何处理这个问题的任何建议?

我使用 c#、wpf、.Net 4.0、MVVM。

BR

4

1 回答 1

0

DoWork 不是访问 UI 元素的最佳位置,因为它不是在 UI 线程中触发的,您应该使用 ProgressChanged 事件

我建议为它创建RotateTransformStoryBoard

<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;并调用开始

于 2012-11-29T09:42:28.307 回答