WPF界面开发必看功能——Splash Screen Manager
DevExpress文档控件公开课第一弹报名通道开启,40分钟教你入门(Spreadsheet)控件!
通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。
启动屏幕是在长时间的启动操作过程中改善应用程序用户体验的有效方法。创建有效的启动画面可能很棘手,必须同时解决两个相互竞争的目标:
- 启动屏幕需要在视觉上具有吸引力。
- 启动画面应立即加载,加载延迟将破坏初始屏幕的总体目的。
WPF Subscription包含DXSplashScreen - 一个UI组件,该组件几年前已构建,可帮助您创建初始屏幕并将其添加到任何WPF应用程序。
最新版本(v20.1)包含一个全新的Splash Screen控件,我们将其命名为SplashScreenManager的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 欢迎一起进群讨论