我按照How to: Add a Splash Screen to a WPF Application概述的簡單步驟向我的WPF應用程序添加啓動畫面。當我啓動應用程序時,會顯示飛濺圖像,然後彈出主窗口,飛濺圖像消失。WPF應用程序窗口出現在SplashScreen頂部
我的問題是,當主窗口彈出時,它會出現在飛濺圖像的頂部。然後,當飛濺圖像開始淡出時,飛濺圖像再次彈出到頂部。最終結果是,當主窗口出現時,飛濺圖像在一瞬間消失。
如何強制主窗口出現在飛濺圖像下,以便飛濺圖像不會消失?
我按照How to: Add a Splash Screen to a WPF Application概述的簡單步驟向我的WPF應用程序添加啓動畫面。當我啓動應用程序時,會顯示飛濺圖像,然後彈出主窗口,飛濺圖像消失。WPF應用程序窗口出現在SplashScreen頂部
我的問題是,當主窗口彈出時,它會出現在飛濺圖像的頂部。然後,當飛濺圖像開始淡出時,飛濺圖像再次彈出到頂部。最終結果是,當主窗口出現時,飛濺圖像在一瞬間消失。
如何強制主窗口出現在飛濺圖像下,以便飛濺圖像不會消失?
這不是默認行爲,你必須有一些手動對焦主窗口的代碼?
這可能是更容易只是關掉褪色帶着幾分像這樣的代碼手動:
_splash = new SplashScreen("LoadingScreen.png");
_splash.Show(false);
_splash.Close(TimeSpan.Zero);
不知道這是否會幫助,但如果您將Splash屏幕的所有者設置爲當前表單,那麼這應該可以做到這一點?
_splash.Owner = this;
否則,你可以看看這裏:
這可能幫助了。
在.NET 4.0中,已將一個overload添加到Show方法中,該方法允許在啓動畫面窗口上設置窗口樣式WS_EX_TOPMOST。顯示在代碼的啓動畫面是這樣的:
SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);
我打電話,從方法
protected override void OnStartup(StartupEventArgs e)
在App.xaml.cs.
「SplashScreen.png」當然是嵌入在應用程序資源中的飛濺圖像的標識符。
我會看看是否有一些代碼正在做焦點;它可能來自第三方組件。由於我使用資源的Build Action添加了啓動畫面,因此我將如何像訪問一樣訪問它......? – 2009-10-28 15:55:44
在你的app.cs文件中聲明一個全局字段「protected SplashScreen _splash;」。在構造函數中有上面兩行代碼。在所有啓動邏輯完成後,在方法結尾處的OnStartup事件中插入上面的最後一行代碼。 應該是這樣。 – Daniel 2009-10-29 00:29:39