gpt4 book ai didi

vb.net - 具有多个控件的透明背景

转载 作者:行者123 更新时间:2023-12-02 02:33:35 24 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,用户可以在三个具有透明背景的标签之间移动。如果一个标签位于另一个标签上方,则第二个标签应该可见。为此,我创建了一个自定义控件派生,因为我希望自定义标签具有透明背景 -> 因此我通过 SetStyle() 设置了 SupportsTransparentBackColors 和 UserPaint

Public Class Customlabel
Inherits System.Windows.Forms.Control

Public Sub New()
MyBase.New()
Me.SetStyle(Windows.Forms.ControlStyles.UserPaint, True)
Me.SetStyle(Windows.Forms.ControlStyles.DoubleBuffer, True)
Me.SetStyle(Windows.Forms.ControlStyles.SupportsTransparentBackColor, True)
InitializeComponents()
End Sub

Private Sub InitializeComponents()
Me.Width = 100
Me.Height = 100
End Sub

Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
e.Graphics.DrawString("Test", New System.Drawing.Font("Arial", 12), New System.Drawing.SolidBrush(Color.Black), New System.Drawing.Point(0, 0))
End Sub
End Class

在主窗体上,我创建了标签,如您所见:

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim AB As Customlabel = New Customlabel
AB.Left = 20
AB.Top = 20
AB.Name = "one"
Me.Controls.Add(AB)

Dim AC As Customlabel = New Customlabel
AC.Left = 50
AC.Top = 20
AC.Name = "two"
Me.Controls.Add(AC)

Dim AD As Customlabel = New Customlabel
AD.Left = 70
AD.Top = 20
AD.Name = "three"
Me.Controls.Add(AD)
End Sub

End Class

尽管如此,标签还是像没有透明背景的矩形一样绘制,并且重叠的 CustomLabel 不可见。如果我将标签的父属性设置为表单,则背景仅相对于表单是透明的。 (不适用于其他自定义标签)

有人知道如何解决这个问题吗?

最佳答案

这可能不是一个好的答案,但可能有效。您可以使用具有透明背景的图像。如 .png 或 .gif 等。然后你的图像就是你的文字。您可以在 Photoshop 中轻松完成此操作。只是尝试摆弄它,但我会自己画这个项目。但快速解决方法是使用透明图像。

关于vb.net - 具有多个控件的透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22696525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com