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

为 Winform 应用程序添加灯箱效果

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.56/5 (8投票s)

2011年8月15日

CPOL

3分钟阅读

viewsIcon

38070

downloadIcon

2562

为 Winform 应用程序添加灯箱效果

引言

本文介绍如何用几行代码添加一个简单的"Lightbox 效果"

定义

Lightbox可以定义为具有透明背景的叠加层。它只是将窗体作为模态对话框打开。用户可以在这里打开一个新的窗体,而无需关闭之前的窗体。深色背景的使用使得窗体变暗,另一个窗体叠加在上面。使用此 Lightbox 效果,您可以平滑地动画您的 Winform 应用程序,并赋予它们定制的外观和感觉。 它完全可定制,更方便且 100% 兼容。

背景

正如我们之前已经了解了如何使用 JavaScript 和其他第三方.dllCSS 文件在网页中添加 Light box 效果一样,在这里我们将看到如何以更简单的方式将其添加到我们的 winforms 应用程序中,而无需使用任何第三方工具或使用 JavaScript。 并且我们在这里看到了 GDI 的强大功能。 现在让我们看看如何在我们的 Winforms 应用程序上获得该效果。

Using the Code

我想以逐步的方式简要描述,以便更容易理解。

步骤 1:创建一个新项目,并为您的项目命名。

步骤 2:创建两个窗体,分别是Form1Form2

步骤 3:如下图所示,您需要为Form2设置属性。 您需要根据Form1的大小设置大小(即,首先您需要检查Form1的大小,然后将相同的大小设置为Form2)。

步骤 4:现在转到Form2并将它的边框样式更改为“”,如下所示。

现在您将获得结果Form2,如下所示

步骤 5:现在只需复制并粘贴以下代码

 Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
        Using brush As Brush = New SolidBrush(Color.FromArgb(65, Color.Black))
            e.Graphics.FillRectangle(brush, e.ClipRectangle)
        End Using
 End Sub		 

在上面的代码中,我们只是使用颜色“black”的笔刷绘制窗体,并将其不透明度设置为“65”。

OnPaint背景方法绘制Form2上的控件的背景。

步骤 6:现在只需设计您的Form1,就像示例一样。 我为了方便起见设计了我的表格,如下所示

步骤 7:接下来,您需要转到Form1并添加以下代码

  Private Sub Button1_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button1.Click
        Dim Lightbox As New Form2()
        Lightbox.SetBounds(Me.Left + 8, Me.Top + 30, _
		Me.ClientRectangle.Width, Me.ClientRectangle.Height)
        Lightbox.Owner = Me
        Lightbox.ShowDialog()
    End Sub		 

在上面的代码中,我只是声明要显示我的第二个窗体,即“Form2”。

Setbounds”只不过是只考虑“Toolstrip”下方的部分到“StatusStrip”上方的部分。 因此,您可以根据您的要求进行调整。

步骤 8:完成此操作后,“按 F5”并按“Button1”以查看输出结果,您可以找到如下所示的结果。

由于其中一些人要求我添加动画效果,我已经添加了它,您可以在下面的屏幕截图中看到它,因为它类似于原始的 Lightbox 效果,您可以在验证记录时感受到它。

与这些类似,我添加了另外两个表单以赋予相同的效果,具有不同的颜色和透明度,如下所示

历史

  • 版本 1.0
  • 1.1 版(定制外观和感觉,添加了动画和透明度)
© . All rights reserved.