有没有人知道如何使用淡入/淡出来制作代码以在标签中显示文字。
示例:我在其中有一个表单和一个标签(VISIBLE = FALSE)
。
如果我点击一个按钮(让我们说Button1
)。
标签将变为可见,并且将开始淡入。
也许只有2秒钟。在2秒后,标签将变为VISIBLE = FALSE
。提前谢谢。
答案 0 :(得分:1)
在Winforms中制作视觉效果的可靠方法是使用自定义绘图,理想情况下使用DirectDraw。在那里,您可以完全控制绘图过程。如果你使用Timer解决方法,你会发现一个不规则/烦人的闪烁。如果您在制作动画后,WPF是一个很好的建议。请注意,WinForms不是为动画而构建的,这项技术应该可以轻松处理系统资源,并且可以通过非常慢的网络连接在RDP上运行在旧的和过时的硬件上。
我知道你在想什么......“你怎么能忍受静态/无聊的灰色灰色东西?”好吧,事实证明用户实际上可以接受这个限制,因为重要的是你的软件如何解决他们的问题,而不是它有多好。至少对于许多商业应用来说都是如此。例如,主要的着名连锁店仍然使用30年前的类似DOS的提示,即使没有动画,鼠标也不存在。我还知道加拿大至少有一家保险公司,其中部分功能是纯文字界面,每个人都可以。
如果您没有开发业务应用程序,WinForms不是一个平台的好选择。
答案 1 :(得分:0)
在here找到了用户希望制作半透明标签的地方。我相信你能从这里得到一些好处!
Imports System
Imports System.Drawing
Imports System.Windows.Forms
' <summary>
' A label that can be transparent.
' </summary>
Public Class TransparentLabel
Inherits Control
' <summary>
' Creates a new "TransparentLabel" instance.
' </summary>
Public Sub New()
TabStop = False
Dim transparencyValue As Integer = 15 '0 is all transparent, 255 is solid
ForeColor = Color.FromArgb(transparencyValue, ForeColor.R, ForeColor.G, ForeColor.B)
End Sub
' <summary>
' Gets the creation parameters.
' </summary>
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H20
Return cp
End Get
End Property
' <summary>
' Paints the background.
' </summary>
' <param name="e">E.</param>
Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
' do nothing
End Sub
' <summary>
' Paints the control.
' </summary>
' <param name="e">E.</param>
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Using brush As SolidBrush = New SolidBrush(ForeColor)
e.Graphics.DrawString(Text, Font, brush, -1, 0)
End Using
End Sub
End Class
修改强>
经过一小段研究后,this出现在代码项目中。它将图像设置为半透明。
有了这个,与timer
结合可以让你生成你想要的东西。
因此,在time_Tick事件中,请使用“淡化代码”。不透明度达到0后,只需停止计时器并重置。 :)
修改编辑
this link是一个讨论板,讨论如何做到(希望如此)。