C # Серый элемент управления и нарисовать другой на нем - PullRequest
2 голосов
/ 22 апреля 2011

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

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

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

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

1 Ответ

2 голосов
/ 23 апреля 2011

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

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

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

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

...