异步颜色渐变





2.00/5 (6投票s)
这提供了一种以异步方式淡化任何颜色属性的简单方法。
引言
这是一个简单的类,包含一个共享方法,用于异步地将颜色属性从一种颜色淡化到另一种颜色。我需要一种方法来向用户指示他们已保存或删除了某些内容,因此我希望能够缓慢淡化文本框的背景颜色。
代码使用
共享方法有三个重载。基本方法接受七个参数
container
- 包含要淡化的颜色属性的对象。例如,文本框或标签。colorProperty
- 要更改的颜色属性的名称 - 这必须是一个字符串,例如“ForeColor”或“BackColor”。startColor
- 将开始淡化的颜色。endColor
- 将结束淡化的颜色。steps
- 从开始颜色到结束颜色淡化所采取的步骤数。delay
- 淡化过程中每个步骤之间的延迟,以毫秒为单位。callback
- 一个可选函数,将在淡化完成后调用。
第二个重载接受一个中间颜色和淡化的步骤数,而最后一个重载接受一个颜色列表和步骤数。
问题
我希望直接传递颜色属性本身,并按引用 (byRef
) 传递它,以便我可以更改它,但我不知道该怎么做。我不确定是否可以将按引用 (byRef
) 参数传递给另一个线程。无论如何,这就是为什么该方法需要一个容器对象和要更改的属性的名称。
示例
Dim textBox1 As New TextBox()
Visual.FadeColor(textBox1, "BackColor", Color.Green, Color.White, _
25, 25, AddressOf DoneFading)
Private Sub DoneFading(ByVal container As Object, ByVal colorProperty As String)
MsgBox("Done fading!")
End Sub
结论
总的来说,它很简单,但希望对您有所帮助。如果您有任何建议,请随时告诉我。