我使用的是 WinForms。我想做一个小类,它修改控件以显示它的工作。
我想绘制一个叠加层,例如一个按钮。它应该是半透明的灰色。 之后我想在它上面(在中心)画一个 ProgressBar。类似于 This ,除了使用进度条。
我怎样才能意识到这一点?我不想设置进度条的位置,只是将其绘制在另一个进度条上。
我该怎么做? 谢谢:)
最佳答案
我以前做过类似的事情。
您需要使用 Button.DrawToBitmap(Bitmap, Rectangle)
获取按钮的图像。然后制作位图灰度( there are multiple algorithms available for this ;我已经成功使用了最后一个,尽管可能不是最初来自该站点)。
现在,我用整个表单而不是按钮来完成此操作,但我禁用了该表单,然后用它自己的图像覆盖了整个表单,进行了更改,然后用进度条覆盖了它(它本身在一个面板中其他控件)。
您可以同样轻松地禁用该按钮,用一个包含图像和进度条的面板覆盖它。
关于C# 将控件变灰并在其上绘制另一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759424/