2017-03-09 9 views
0

私はPRISMを使用しているWPFアプリケーションを持っています。私はログイン画面を持っていて、TileListViewを含む新しいビューにsuccessfulyログインすると多くの項目が表示されます。これは、コントロールがたくさんなどを計算しなければならないので、これは10秒以上レンダリングする必要があります。WPFでのレンダリングはUIスレッドで行われるため、これはすべて標準の動作でUIスレッドを使用します。別のウィンドウやこれのようなものでスピナーや単純なアニメーションのようなWaitControlを表示することは可能ですか?今度はアニメーションを停止するように、コントロールはUIスレッドでレンダリングされます。WPFでのUIElementのレンダリング中に待機画面

+0

バックグラウンドスレッドで計算が実行された後に割り当てられるDependencyPropertiesにUIのものがバインドされるようにリファクタリングすることは可能でしょうか?それほどUIスレッド上で起こっている問題であるようです。 –

+0

コントロールはTelerikのものですから、変更できませんでした:/ –

+0

同じウィンドウ内のスピナーはうまくいきません。そのスピンアニメーションは、同じUIのスレッドがうまく動かないため、うまく回転しません。 しかし、おそらく別のウィンドウやオーバーレイするものを作成するあなたの考えはうまくいくかもしれません。コントロールの読み込みが完了したら、ただ知っておく必要があります。 コントロールが何を計算しているかをもう少し説明できますか?それは私たちが別の解決法を見つけるのを助けるかもしれません –

答えて

1

別のスレッドで起動する新しいウィンドウを作成することができます。これを行う方法の例については、次のブログ記事を参照してください。別のスレッドでWPFウィンドウの起動

http://reedcopsey.com/2011/11/28/launching-a-wpf-window-in-a-separate-thread-part-1/

を次に、あなただけの資格情報を検証してきた直後や、あなたの重いレンダリングを開始する直前のウィンドウが表示され、このスレッドを開始します。

これはおそらくあなたができる最良のものであり、実装するのもかなり簡単なことです。

+0

まさに私が必要としていたこと、ありがとう。 –

0

SplashScreenを使用して、バックグラウンド処理が完了するまで表示できます。これを参照してくださいSplash Screen in WPF

+0

これは私の問題を解決しない、私の質問をお読みください。 –

関連する問題