# .Net 設置 SplashScreen,在高 DPI 下不居中的解決方案 根據.Net 官方文檔,設置圖片類型的軟體的啟動屏幕非常簡單,只需要將圖片放在工程里,並將圖片的生成操作設置為 SplashScreen 後即可。 但是這個辦法在高 DPI 屏幕中沒有適應,圖片顯示的位置不居中,對於強迫 ...
.Net 設置 SplashScreen,在高 DPI 下不居中的解決方案
根據.Net 官方文檔,設置圖片類型的軟體的啟動屏幕非常簡單,只需要將圖片放在工程里,並將圖片的生成操作設置為 SplashScreen 後即可。
但是這個辦法在高 DPI 屏幕中沒有適應,圖片顯示的位置不居中,對於強迫症來說會非常非常難受。查閱了很多官方文檔和論壇後依然沒有人給出在這個基礎上去修正的方案。於是我們只能另闢蹊徑。
這個問題有如下兩個主流解決方案
- 創建一個 Dialog 作為啟動界面,並設置定時器自動將視窗關閉。
- 使用 SplashScreen 類手動打開這個圖片。
第一種顯然是比較好的,因為通過自定義視窗嗎,我們可以在啟動界面中做任何事情,動畫之類的東西是輕而易舉。但是由於程式啟動後視窗的創建時間較長,會導致雙擊程式後需要等一會兒才會出現啟動界面,感官上不是特別好。
第二種的效果也只是放一張圖片而已,但是速度會快很多,而且非常簡單。
在 App.xaml.cs 中的 OnStartup 中引入 SplashScreen 即可。
protected override void OnStartup(StartupEventArgs e)
{
SplashScreen sp = new SplashScreen("圖片.png");
sp.Show(true);
base.OnStartup(e);
}