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 方法。