这是我想要实现的目标的图像:
如您所见,进度条下方略有反映.
我有一个很大程度上基于此代码的自定义进度条:
http://www.codeproject.com/Articles/19309/Vista-Style-Progress-Bar-in-C
注意:我的代码是在VB中.
问题 – 我想在它下面绘制一个进度条的反映,所以它看起来与我上面给出的图像类似.我被告知,一种方法是使用像素,这需要手动完成.这是唯一的选择吗?还有其他/更简单的方法吗?
我感谢您的帮助.
谢谢!
解决方法
你在找这样的东西吗?
这是代码:
Dim pgBarReflection As New Bitmap(ProgressBar1.Width,20) ProgressBar1.DrawToBitmap(pgBarReflection,ProgressBar1.ClientRectangle) For x As Integer = 0 To pgBarReflection.Width - 1 For y As Integer = 0 To pgBarReflection.Height - 1 Dim alpha = 255 - 255 * y \ pgBarReflection.Height Dim clr As Color = pgBarReflection.GetPixel(x,y) clr = Color.FromArgb(alpha,clr.R,clr.G,clr.B) pgBarReflection.SetPixel(x,y,clr) Next y Next x Me.CreateGraphics.DrawImage(pgBarReflection,New Point(ProgressBar1.Left,ProgressBar1.Bottom + 10))
如果需要灰度阴影,请替换此行
clr = Color.FromArgb(alpha,clr.B)
这两个:
Dim greyScale As Integer = CInt(clr.R * 0.3 + clr.G * 0.59 + clr.B * 0.11) clr = Color.FromArgb(alpha,greyScale,greyScale)
你会得到这样的东西:
您可以使用参数来使阴影更逼真.
Draw an image with gradient alpha (opacity) values in VB.NET
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。