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






4.56/5 (8投票s)
为 Winform 应用程序添加灯箱效果
引言
本文介绍如何用几行代码添加一个简单的"Lightbox 效果"
。
定义
Lightbox
可以定义为具有透明背景的叠加层。它只是将窗体作为模态对话框打开。用户可以在这里打开一个新的窗体,而无需关闭之前的窗体。深色背景的使用使得窗体变暗,另一个窗体叠加在上面。使用此 Lightbox 效果,您可以平滑地动画您的 Winform 应用程序,并赋予它们定制的外观和感觉。 它完全可定制,更方便且 100% 兼容。
背景
正如我们之前已经了解了如何使用 JavaScript 和其他第三方.dll 或 CSS 文件在网页中添加 Light box 效果一样,在这里我们将看到如何以更简单的方式将其添加到我们的 winforms 应用程序中,而无需使用任何第三方工具或使用 JavaScript。 并且我们在这里看到了 GDI 的强大功能。 现在让我们看看如何在我们的 Winforms 应用程序上获得该效果。
Using the Code
我想以逐步的方式简要描述,以便更容易理解。
步骤 1:创建一个新项目,并为您的项目命名。
步骤 2:创建两个窗体,分别是Form1
和Form2
。
步骤 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 版(定制外观和感觉,添加了动画和透明度)