3

私は WPF を使用してアプリを構築していますが、それらの間に遅延を持たせたい 2 つのアニメーションがあります。しかし、私がそれをしようとすると

MainWindow_Loaded(object sender, RoutedEventArgs e)

イベント、ロード中に遅延するだけで、最初のアニメーションが見逃されます。

助けはありますか?

4

3 に答える 3

2

Dispatcher オブジェクトを使用してアニメーションでコードを呼び出すことは、試してみる価値があるかもしれません。ディスパッチャの優先度を設定することで、たとえばすべてのデータ バインディング (非同期であっても) が完了するまで実行を延期できます。

   // Schedule the update function in the UI thread.
   Dispatcher.BeginInvoke(
      System.Windows.Threading.DispatcherPriority.Loaded, ...);

これが機能しない場合は、優先度を変更してみてください。優先度が低いほど、後でアクションが呼び出されます。

于 2012-02-10T18:10:18.523 に答える
0

Window.ContentRendered(またはMe.ContentRendered)を使用して、ウィンドウの読み込みがいつ終了したかを確認することに成功しました。

この答えを見る

于 2012-08-03T16:22:05.930 に答える
0

残念ながら、読み込み (バインディング レンダリング) が完了したことを通知する組み込みの通知はありません。したがって、独自の解決策を考え出す必要があります。

MainWindow_Loaded次のようなものを書くことができます(疑似コード):

new Thread(new ThreadStart(new Action(() =>
{
      Sleep(2000); // a couple of seconds sleep 
      StartAnimation(); 

}))).Start();

お役に立てれば。

于 2012-02-10T16:42:29.580 に答える