「实战指南」基于DevExpress轻量化主题实现WPF应用性能升级

B站影视 电影资讯 2025-03-18 23:59 1

摘要:DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

如果您的下一个基于DevExpress的(经典主题的)WPF应用程序加载速度快了一倍?如果这可以通过一个简单的主题改变来实现呢?

通过从经典的DevExpress主题切换到轻量级的DevExpress WPF主题,您可以提高启动速度,减少内存消耗,并增强整体响应能力。在这篇文章中,我们将概述轻量级主题的好处和更新应用程序时需要考虑的关键因素,并向您展示如何将轻量级WPF主题合并到项目中。

应用程序启动

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扩展中指定颜色名称:


您还可以根据当前应用的主题指定不同的颜色:


通过引用默认颜色,您可以在应用中同步DevExpress/其他UI元素的外观。

升级路径到轻量级主题

CompatibilitySettings.UseLightweightThemes = true;
ApplicationThemeHelper.ApplicationThemeName = LightweightTheme.Win11Light.Name;

如果您定制了经典主题,请注意以下内容:

轻量级主题不支持DevExpress WPF主题设计器。如果您主要使用主题设计器进行颜色自定义,则可以使用自定义调色板覆盖颜色。此技术允许您指定大多数主题颜色,而无需构建新的程序集。对于更复杂的自定义,可以使用内置控件API或修改主题资源。

与经典主题相比,轻量级主题资源具有不同的关键字名称。如果您已经覆盖了应用程序中的经典资源,它们中的大多数应该适用于轻量级主题,但可能需要进行微小的修改。例如,ThemeName属性不能用于旧的主题键。

切换到轻量级主题应该很简单,但是即使您选择继续使用经典主题,也要考虑升级到v23.2或更新版本,因为该版本也提高了经典主题的性能。与v23.1相比,您可以期待高达30%的启动性能改进。

未来更新

官方将在未来的发布周期中继续致力于性能增强(我们期望在v25.1发布周期中优化WPF富文本和字体编辑器中的字体加载性能)。

来源:小鱼科技频道

相关推荐