2009-12-02 5 views
6

フルスクリーンWPFアプリケーションでウィンドウを切り替えると、初めて画面が表示された場合、ウィンドウが表示される前にモニタが一時的に黒くなります。これは、ウィンドウが最初に表示されたときにのみ発生します。これが起こらないように各ウィンドウをプリロードする方法はありますか?WPFウィンドウのプリロード

これは私が試したものです:

myWindow.Show(); 
myWindow.Hide(); 

が、目に見えるちらつきがあります。

myWindow.Height = 0; 
myWindow.Width = 0; 
myWindow.WindowState = WindowState.Normal; 
myWindow.Show(); 
myWindow.Hide(); 
myWindow.Height = Screen.PrimaryScreen.Bounds.Height; 
myWindow.Width = Screen.PrimaryScreen.Bounds.Width; 
myWindow.WindowState = WindowState.Maximized; 

フリッカを、私はそれが第二次いで適切に表示するために更新分割するための奇妙な状態でそれ自身を示したウィンドウを示す場合:

そして私が試していません。

+0

私はちょうどフルスクリーンアプリのそれだけではない問題を追加したいと思います。多くのビジュアルが含まれている新しいウィンドウを開くと同じ問題が発生します。問題は何千もの異なるラッパーを作成することです。項目コントロール、初回のレイアウト構築、レンダリングの項目。初めて多くのコントロールを含むタブに切り替えるときにも同じ問題が起こります。だから誰かがコントロールをあらかじめロードする方法を知っていれば、それは本当に素晴らしいでしょう。 – levanovd

答えて

0

私は同様の問題がありました。最後に私はスプラッシュ画面を作成し、コントロールをスプラッシュ画面の後ろに独立したスレッドでロードしました。これは点滅を停止しましたが、initailアプリケーションの読み込み時間を長くしました。

+0

どうやってやったのですか?スプラッシュ画面のすべてのウィンドウを表示せずにインスタンス化していますか? – SRKX