DevExpress WPF使用技巧教程:Splash Screen Manager
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
通過DevExpress WPF Controls,您能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。

啟動屏幕是在長時間的啟動操作過程中改善應用程序用戶體驗的有效方法。創建有效的啟動畫面可能很棘手,必須同時解決兩個相互競爭的目標:
- 啟動屏幕需要在視覺上具有吸引力。
- 啟動畫面應立即加載,加載延遲將破壞初始屏幕的總體目的。
WPF Subscription包含 - 一個UI組件,該組件幾年前已構建,可幫助您創建初始屏幕并將其添加到任何WPF應用程序。
最新版本(v20.1)包含一個全新的Splash Screen控件,我們將其命名為的UI組件。
設計原理
Splash Screen Manager附帶了兩種預定義的樣式 - Themed、Fluent (Acrylic),Themed Splash Screen使用與應用程序相同的配色方案。

下一個預定義樣式 - Fluent Splash Screen具有Acrylic效果,如下所示,該初始屏幕使用半透明背景。同時,新版本盡可能地優化了初始屏幕,以確保其快速加載。

應用范圍內的等待指示器
Wait Indicators是在耗時的操作期間提供反饋的好方法,例如wait indicator將改善長時間獲取操作期間應用程序的用戶體驗。
您可以根據需要使用新的Splash Screen Manager在您的應用程序中創建等待指示器, 只需設置Show方法的owner和trackOwnerPosition參數,即可將啟動屏幕放置在特定的UI元素上,并在用戶調整大小或拖動窗口時將其保持在該位置。

使用Splash Screen Manager創建的啟動畫面在單獨的線程中處理,并且不會干擾應用程序流程。但是,在此特定使用情況下顯示 “splash screen” 后,您可能希望控制用戶與應用程序的交互,可以使用單個方法參數來完成。您的選擇各不相同:可以阻止應用程序,限制窗口內的輸入,但允許用戶在周圍拖動窗口或阻止特定元素。
性能
為最大程度地發揮SplashScreenManager性能并確保及時顯示,已確定不會加載所有DevExpress主題資源 - 會加載所需的資源,以便快速渲染初始屏幕。
技術團隊測量了在有和沒有Ngen.exe優化的情況下在不同PC配置上的啟動時間:
- Themed Splash Screen:290-450毫秒
- Fluent Splash Screen:300-460毫秒
用Ngen.exe編譯:
- Themed Splash Screen:170-370毫秒
- Fluent Splash Screen:180-370毫秒
相比之下,DXSplashScreen(具有默認模板)在720-1000毫秒內呈現(Ngen.exe編譯后450-900毫秒), 最重要的是:新的SplashScreenManager加載速度提高了約50%。

使用方面
試圖盡可能輕松地使用SplashScreenManager,這是將其集成到下一個應用程序中的方法:
第一步 - 將以下代碼添加到App.xaml.cs:
SplashScreenManager.CreateThemed(new DXSplashScreenViewModel { Status = "Starting...", Title = "The Best or Nothing!" } ).ShowOnStartup();
上面的代碼使用應用程序的默認配色方案生成啟動屏幕,顯示該屏幕的優先級高于主應用程序,以最大程度地減少延遲,并在應用程序初始化后將其隱藏。
易于自定義
您可以通過訪問視圖模型用幾行代碼來編輯預定義的初始屏幕內容,可以交換使用的圖像、編輯顯示的文本以及修改進度欄的值。
如果您需要更廣泛的自定義,則可以從模板庫中加入預定義的初始屏幕,或者從頭開始實施自己的設計。
MVVM思想
v20.1版本擴展了服務集,來幫助您將SplashScreenManager功能添加到兼容MVVM的應用程序中,從模板庫中將啟動畫面添加到您的應用程序,根據需要對其進行自定義,然后將SplashScreenManagerService添加到您選擇的視圖中。
DevExpress技術交流群2:775869749 歡迎一起進群討論