DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產品,還是以數據為中心的商業智能產品,都能通過DevExpress WPF控件來實現。
如果您的下一個基于DevExpress的(經典主題的)WPF應用程序加載速度快了一倍?如果這可以通過一個簡單的主題改變來實現呢?
通過從經典的DevExpress主題切換到輕量級的DevExpress WPF主題,您可以提高啟動速度,減少內存消耗,并增強整體響應能力。在這篇文章中,我們將概述輕量級主題的好處和更新應用程序時需要考慮的關鍵因素,并向您展示如何將輕量級WPF主題合并到項目中。
點擊獲取DevExpress WPF v24.2正式版
應用程序啟動
DevExpress官方在v23.2發布周期中引入了輕量級主題,與v23.1中的經典主題相比,輕量級主題提供了以下啟動性能改進:
注意:實際的性能增益將根據.NET版本,是否使用Ngen或ReadyToRun,以及其他特定于應用程序的因素而變化。
為了實現這些改進,官方技術團隊徹底檢查了WPF主題的實現,并進行了以下優化:
- 重組資源字典以減少搜索深度。
- 刪除了默認DeepBlue主題中不必要的部分。
- 重新組織主題鍵來使用更少的類并減少JIT編譯。
- 增強了從DevExpress.Images庫加載圖像的緩存。
這些增強減少了與JIT初始化、XAML解析和資源加載相關的時間(為了進一步減少啟動時間,考慮在應用程序中啟用多核JIT和ReadyToRun)。
視圖切換
除了啟動時間之外,輕量級主題優化還有助于提高視圖切換性能。正如您所期望的那樣,用戶現在可以在第二次打開視圖時更快地與DevExpress的UI控件進行交互。
有了這個改變,您可以期待更快的標簽切換、導航、面板對接/卸載,以及增強的應用響應能力。
內存使用情況
因為我們現在使用更少的XAML資源,輕量級主題消耗更少的內存(RAM和本地磁盤使用)。
有效的內存管理有助于減少性能問題并降低筆記本電腦等設備的功耗,這一點在舊設備上尤其重要,因為當RAM不足時,操作系統可以在本地磁盤上創建交換文件。
由于所有輕量級主題都共享多個XAML資源,因此我們將它們組合成一個只需要11 MB空間的程序集(相比之下,在一組類似的經典主題中需要10個程序集,總共72 MB空間)。
簡化調色板顏色訪問
除了性能和內存增強之外,輕量級主題還簡化了調色板顏色的使用。要在應用中引用主題顏色,只需在ThemeResource擴展中指定顏色名稱:
<Border BorderBrush="{dxci:ThemeResource ThemeKey='Brush.Border'}"/>
您還可以根據當前應用的主題指定不同的顏色:
<Border BorderBrush="{dxci:ThemeResource ThemeKey='Brush.Border,
Win11Light=Brush.Custom.Red'}" />
通過引用默認顏色,您可以在應用中同步DevExpress/其他UI元素的外觀。
升級路徑到輕量級主題
要激活輕量級主題,添加DevExpress.Wpf.ThemesLW包,并在應用程序啟動時調用以下代碼:
CompatibilitySettings.UseLightweightThemes = true;
ApplicationThemeHelper.ApplicationThemeName = LightweightTheme.Win11Light.Name;
如果您定制了經典主題,請注意以下內容:
- 輕量級主題不支持DevExpress WPF主題設計器。如果您主要使用主題設計器進行顏色自定義,則可以使用自定義調色板覆蓋顏色。此技術允許您指定大多數主題顏色,而無需構建新的程序集。對于更復雜的自定義,可以使用內置控件API或修改主題資源。
- 與經典主題相比,輕量級主題資源具有不同的關鍵字名稱。如果您已經覆蓋了應用程序中的經典資源,它們中的大多數應該適用于輕量級主題,但可能需要進行微小的修改。例如,ThemeName屬性不能用于舊的主題鍵。
切換到輕量級主題應該很簡單,但是即使您選擇繼續使用經典主題,也要考慮升級到v23.2或更新版本,因為該版本也提高了經典主題的性能。與v23.1相比,您可以期待高達30%的啟動性能改進。
未來更新
官方將在未來的發布周期中繼續致力于性能增強(我們期望在v25.1發布周期中優化WPF富文本和字體編輯器中的字體加載性能)。