C# 将控件变灰并在其上绘制另一个控件

标签 c# controls drawing overlay progress

我使用的是 WinForms。我想做一个小类,它修改控件以显示它的工作。

我想绘制一个叠加层,例如一个按钮。它应该是半透明的灰色。 之后我想在它上面(在中心)画一个 ProgressBar。类似于 This ,除了使用进度条。

我怎样才能意识到这一点?我不想设置进度条的位置,只是将其绘制在另一个进度条上。

我该怎么做? 谢谢:)

最佳答案

我以前做过类似的事情。

您需要使用 Button.DrawToBitmap(Bitmap, Rectangle)获取按钮的图像。然后制作位图灰度( there are multiple algorithms available for this ;我已经成功使用了最后一个,尽管可能不是最初来自该站点)。

现在,我用整个表单而不是按钮来完成此操作,但我禁用了该表单,然后用它自己的图像覆盖了整个表单,进行了更改,然后用进度条覆盖了它(它本身在一个面板中其他控件)。

您可以同样轻松地禁用该按钮,用一个包含图像和进度条的面板覆盖它。

关于C# 将控件变灰并在其上绘制另一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759424/

相关文章:

iOS:图像绘制性能

c# - 在 MVC 6 应用程序中显示本地日期格式

c# - 使用 WPF 在 3d 中绘制大型数据集?

c# - 在 WinForm C# 上捕获 KeyUp 事件

c# - 一种监视控件屏幕位置何时更改的方法?

c# - C# 2.0 可以创建发光效果吗?

opencv - 无法绘制最大轮廓

c# - 在 JSON 中保存目录路径?

c# - 使用对象数组中的数组键对对象进行排序

emacs - 有没有练习光标控制的emacs游戏?