フレーム単位でイベントを取得
以前に「FrameRate単位でイベントを取得」ってので、Storyboardでいけるって書いたんですが、Silverlight 2 RC0 からは専用のオブジェクトができてました。CompositionTargetってやつです。
このCompositionTargetのRenderingイベントでフレームごとのイベントが取得できます。以下のような感じ。
public Page() { InitializeComponent(); CompositionTarget.Rendering += CompositionTarget_Rendering; } private void CompositionTarget_Rendering(object sender, EventArgs e) { target.SetValue(Canvas.LeftProperty, (double)target.GetValue(Canvas.LeftProperty) + 0.5); target.SetValue(Canvas.TopProperty, (double)target.GetValue(Canvas.TopProperty) + 0.5); }
これで、空のStoryboardでグリグリするのともおさらばですね。