C# Грей из элемента управления и нарисуй на нем другой


Im использует WinForms. Я хочу сделать небольшой класс, который модифицирует элементы управления, чтобы показать его работу.

Я хочу нарисовать наложение, например, на кнопку. Он должен быть полупрозрачного серого цвета. После этого я хочу нарисовать прогрессбар над ним (в центре). Аналогично этому, за исключением использования индикатора выполнения.

Как я могу это осознать? Я не хочу устанавливать положение прогрессбара, просто рисуя его на другом.

Как я мог это сделать? Спасибо :)

1 2

1 ответ:

Я уже делал нечто подобное раньше.

Вам нужно использовать Button.DrawToBitmap(Bitmap, Rectangle) чтобы получить изображение кнопки. Затем сделайте растровые оттенки серого (есть несколько алгоритмов, доступных для этого; я успешно использовал последний, хотя, вероятно, не изначально с этого сайта).

Теперь я сделал это с целой формой вместо кнопки, но я отключил форму, а затем покрыл всю форму изображением самого себя, изменил и затем покрыл ее прогрессом панель (сама в панели с другими элементами управления).

Вы можете так же легко отключить кнопку, прикрыв ее панелью, содержащей изображение и индикатор выполнения сверху.