DevExpress技術交流羣3:700924826 歡迎一起進羣討論
啓動畫面管理器允許您將任何圖像顯示爲啓動畫面。
主要功能包括:
- 支持圖像透明性,因此初始圖像可能是不規則的形式,並且可能包含陰影。
- 支持設計時自定義。
- 可以在主表單啓動時自動顯示和關閉。
- 允許您自定義繪製圖像。
- 通過命令與啓動表單進行交互。
用代碼創建和顯示啓動圖像
這種方法使您可以用一行代碼將任何圖像顯示爲初始屏幕,您可以使用自定義的繪圖器繪製初始圖像(例如,繪製進度指示器)。
要調用啓動圖像,請調用靜態SplashScreenManager.ShowImage方法,將目標圖像指定爲參數。 若要隱藏圖像,請調用靜態SplashScreenManager.HideImage方法。
C#
Image im = Image.FromFile("mySplashScreen.png"); SplashScreenManager.ShowImage(im); //... SplashScreenManager.HideImage(); VB.NET Dim im As Image = Image.FromFile("mySplashScreen.png") SplashScreenManager.ShowImage(im) '... SplashScreenManager.HideImage()
SplashScreenManager.ShowImage方法重載允許您指定圖像位置並啓用淡入淡出動畫效果。
自定義繪製啓動圖像
要顯示啓動圖像並在初始圖像上繪製圖形,請執行以下操作:
- 創建一個支持ICustomImagePainter接口的類。
- 通過ICustomImagePainter.Draw方法實現繪製過程。
- 將ShowImage方法重載與'painter'參數一起使用,並傳遞ICustomImagePainter對象作爲此參數。
每次顯示圖像時,都會調用ICustomImagePainter.Draw方法。 要強制更新初始圖像,請調用SplashScreenManager.Invalidate方法。
在設計時創建啓動圖像(手動或自動顯示)
此方法提供以下自定義選項:
- 允許您在設計時創建啓動圖像。
- 在主窗體啓動時自動顯示和關閉啓動圖像。
- 顯示並關閉代碼中的啓動圖像。
- 在啓動畫面上添加自定義控件。
- 訪問並擴展初始圖像類的實現。
- 使用命令與代碼中的初始圖像進行交互。
創建啓動圖像
右鍵單擊Visual Studio tray中的SplashScreenManager組件,然後選擇Add Splash Screen。
在Solution Explorer中雙擊生成的SplashScreen1.cs(SplashScreen1.vb)文件來打開設計時編輯器。
將SplashScreen的ShowMode屬性設置爲Image。
您也可以使用 SplashScreen.SplashImageOptions 屬性來指定自定義圖像。
添加對圖像的自定義控件
在圖像上方顯示自定義控件:
- 啓用SplashScreen.AllowControlsInImageMode選項。
- 將自定義控件添加到啓動屏幕。
注意:如果您需要使用自定義類擴展SplashScreen1.cs/.vb文件,請確保封裝Splash Screen的類在這些文件中排在第一位。
啓動時自動顯示和關閉
要在主窗體的啓動時自動顯示創建的Splash Image,請確保將SplashScreenManager的Active Splash Form設置爲您的啓動屏幕。 打開SplashScreenManager的智能標記,然後檢查“ Active Splash Form”設置。
或者,您可以檢查屬性網格中的SplashScreenManager.ActiveSplashFormTypeInfo 設置。
啓動畫面管理器會在主窗體啓動時自動顯示激活的啓動畫面,並在初始化和顯示主窗體時將其關閉。
手動顯示和關閉
確保啓動畫面管理器的Active Splash Form設置爲 '(None)'。
若要顯示和關閉創建的啓動畫面,請使用靜態SplashScreenManager.ShowForm和SplashScreenManager.CloseForm方法。
C#
SplashScreenManager.ShowForm(typeof(SplashScreen1)); //... SplashScreenManager.CloseForm(); VB.NET SplashScreenManager.ShowForm(GetType(SplashScreen1)) '... SplashScreenManager.CloseForm()
動態更新啓動畫面
啓動屏幕顯示在單獨的線程中。 在代碼中,您可以通過SplashScreenManager.SendCommand 方法發送的命令與激活的啓動畫面進行交互(例如,動態更新自定義控件)。若要處理這些命令,請重寫SplashScreen.ProcessCommand 方法。