0

矢印を「アニメーション化」する必要があります。任意の方向 (上、下、左、右、対角線) に移動でき、矢じりは最後になります。根元から端まで成長しているように見える必要があります。問題をより複雑にするには、ユーザーコントロールに含める必要があるため、フォームのコントロールコレクションに追加し、それを削除して画面から削除することができます。その背景は実際には透明です (color.transparent はありません)。前の行を「クリア」するために背景をペイントすることはできません。私はそれをすでに静的にしています(原点から最後まで描いています)が、アニメーション化できません。ユーザー コントロールにタイマーを追加しようとしましたが、ラインの成長中にラインの中間端を計算するための正しいアルゴリズムを取得できませんでした。どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

0

別のスレッドは必要ありません。Windows フォーム アニメーションの実装に成功しました。

私のデザイン:

  • Windows.System.Forms.Timer オブジェクトを使用して、定期的にコールバック関数 'Animate()' を呼び出します
  • Animate() 関数は矢印のプロパティを更新し、Windows コントロールで Invalidate() を呼び出します
  • これはすべて同じ UI スレッドで発生するため、(コントロールのダブル ダファリングがオンになっている限り) ちらつき効果は発生しません。
于 2010-11-11T12:12:59.353 に答える
0

Windows フォームでアニメーションを使用する場合、別のスレッドを使用する必要があります。バックグラウンド ワーカーの使用を検討してください: http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

于 2010-03-16T12:55:14.613 に答える