65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 .NET 创建可爱的启动画面和关于对话框

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.22/5 (16投票s)

2003年12月12日

2分钟阅读

viewsIcon

65340

downloadIcon

2012

在应用程序启动时构建外观精美的 Splash 窗口和具有特殊效果的 About 框。

引言

每个设计良好的商业 Windows 应用程序都需要一个好的启动画面来显示应用程序名称、公司详细信息、版权声明和其他联系信息。 相同的窗口可以显示为“关于”对话框。

详细说明

下图显示了 CuteSplash 示例的实际效果。 示例中的主窗口只是一个没有功能的虚拟窗口,仅用于演示启动画面如何工作。


Sample screenshot


Sample screenshot

Opacity(不透明度)和 TransparencyKey(透明键)属性的 Form 用于构建 SplashWindow 类。 在构建表单时,重要的是将图像或表单的背景设置为用于设置 TransparencyKey 的颜色,以使表单的某些部分不可见! 另外,将 FormBorderStyle 属性设置为 None(无边框)。

SplashWindowLoad 事件上启动一个线程,使该类独立且可重用。 添加一个关闭按钮到表单以关闭窗口。 按钮上的 Click 事件将只是标记线程退出。 不会暂停线程,而是标记线程退出以获得淡出效果。

以下是相关代码。

    void DrawSplashWindow()
    {
        mrEvent = new ManualResetEvent(false);
        mrEvent.WaitOne(4000, true);
        //fader loop
        for (double i=100.0; i>=0.0; i-=5.0) // run opacity index
        {
            Opacity = i/100.0;// decrease opacity
            Thread.Sleep(50);
        }
        Close();
    }

当按下关闭按钮时,ManualResetEvent 被设置为发出信号并退出 DrawSplashWindow() 方法中的 mrEvent.WaitOne() 块。

    private void OnClose(object sender, System.EventArgs e)
    {
        // make the close button invisible
        CloseBtn.Visible = false;
        // flag the DrawSplashWindow thread to exit
        mrEvent.Set();
    }

局限性

不透明度属性仅在 Windows 2000 和 Windows XP 上可用!

扩展代码

本文给出的示例有很多方法可以用来增强启动画面。
  • 可以使用 Graphics.DrawString() 方法绘制文本。 逐个字符计算位置并绘制是一个好主意(它使窗口栩栩如生)。
  • 要添加注册和联系信息等运行时详细信息,请添加静态和编辑框控件,而不是绘制它们。
  • 由于 SplashWindow 类是一个独立的、可重用的类,因此显示字符串、显示持续时间和淡出效果都可以参数化,以构建一个通用的类。
    剩下的就留给读者想象吧 :-)
© . All rights reserved.