2012-03-13 14 views
1

私はいくつかのアニメーションをサポートするコントロールを持っています。Silverlight:アニメーションの一時停止

私はその内部構造にアクセスできません。

このアニメーションのスクリーンショットを200ミリ秒ごとに取得するにはどうすればよいですか?


私はこのコードを試してみた:

var timer = new Timer(state => 
      { 
       this.root.Dispatcher.BeginInvoke(() => 
        { 
          var bitmap = new WriteableBitmap(this.root, new TranslateTransform()); 
          SaveImageSomewhere(bitmap, "picture_" + (i++) + ".png"); 
        }); 
      }, null, 0, 200); 

しかし、UIスレッドで呼び出しをキャプチャするためには、200msの間隔でスクリーンショットアクションを発生しません。

一部のコントロールでアニメーションを停止(フリーズ)する可能性はありますか?

+0

ブレンドを使用してコントロールテンプレートを編集できますか? – jv42

+0

@ jv42可能ですが、このコントロールのアニメーションがコードからアタッチされているようです。それはかなり複雑な制御です。 –

+0

それはVSMによって制御されないのですか? – jv42

答えて

1

私はSilverlight Spyをダウンロードし、それを使ってコントロールを見て、どのようにアニメーションをやっているのかをお勧めします。ストーリーボードを使用している場合は、コントロールツリーをナビゲートしてストーリーボードにアクセスし、Pause methodを呼び出すことができます。

別のオプションは、C#winフォームまたはWPFアプリケーションのブラウザコントロール内でUIをホストし、それを使用してスクリーンショット(またはdownload a pre-built one)をキャプチャすることです。

関連する問題