0

希望どおりに動作するバックグラウンド ワーカーがあります。しかし、backgroundworker.DoWork が呼び出された瞬間から backgroundworker.completed が呼び出されるまで、ビュー内の画像を継続的に回転させたいと考えています。

いくつかのイベントトリガーで少し試してみましたが、うまくいきません。これをどのように進めるかについての提案はありますか?

私は c#、wpf、.Net 4.0、MVVM を使用しています。

ブラジル

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 に答える