希望どおりに動作するバックグラウンド ワーカーがあります。しかし、backgroundworker.DoWork が呼び出された瞬間から backgroundworker.completed が呼び出されるまで、ビュー内の画像を継続的に回転させたいと考えています。
いくつかのイベントトリガーで少し試してみましたが、うまくいきません。これをどのように進めるかについての提案はありますか?
私は c#、wpf、.Net 4.0、MVVM を使用しています。
ブラジル
希望どおりに動作するバックグラウンド ワーカーがあります。しかし、backgroundworker.DoWork が呼び出された瞬間から backgroundworker.completed が呼び出されるまで、ビュー内の画像を継続的に回転させたいと考えています。
いくつかのイベントトリガーで少し試してみましたが、うまくいきません。これをどのように進めるかについての提案はありますか?
私は c#、wpf、.Net 4.0、MVVM を使用しています。
ブラジル
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 を見つけます。開始を呼び出します