(извините, что пропустил функцию ответа, но ответ слишком длинный для комментария)
@ TaW, кажется, вы не совсем поняли подход, поэтому я попытаюсь объяснить его более подробно
ОП спросил, может ли он сделать прозрачное изображение поверх другого элемента управления (индикатор выполнения)
Я предположил, что это прозрачное изображение находится внутри PictureBox, вы, похоже, предполагаете, что какой-то другой элемент управления
Расположите элемент управления, если мое предположение правильно, окно с картинкой, перед индикатором выполнения все, что ему нужно сделать, это щелкнуть правой кнопкой мыши и нажать «Переместить на передний план» на PictureBox
, и там у вас есть «прозрачный»PictureBox находится напротив индикатора выполнения, но, как вы упомянули в своем ответе, мы не можем останавливаться на достигнутом, поскольку «прозрачность» - это не то, что я ожидал, но, очевидно, вы знали - это «выбор цвета родительского фона», который делает WinForms, и в итоге мы получаем неполностью прозрачное изображение перед ProgressBar, но вместо этого с серым фоном
Теперьразмещенный URL-адрес приходит на место: http://www.richardhyland.com/diary/2009/05/26/how-to-truely-make-a-picturebox-background-transparent/
Это код, предоставленный и объясненный в этом URL:
public static System.Drawing.Drawing2D.GraphicsPath Transparent(Image im)
{
int x;
int y;
Bitmap bmp = new Bitmap(im);
System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
Color mask = bmp.GetPixel(0, 0);
for (x = 0; x <= bmp.Width - 1; x++)
{
for (y = 0; y <= bmp.Height - 1; y++)
{
if (!bmp.GetPixel(x, y).Equals(mask))
{
gp.AddRectangle(new Rectangle(x, y, 1, 1));
}
}
}
bmp.Dispose();
return gp;
}
Таким образом, мы можем достичь полностью прозрачного поля изображения перед прогрессом.bar.
Итак, без этого кода у нас есть это:

Но с этим кодом:

Обратите внимание, у этого подхода есть некоторые недостатки:
- не работает идеально - так как вы можете видеть серые пиксели по краям изображения
- плохо работает на больших изображениях - так какполучение каждого пикселя с
GetPixel
- это «вызов»
(Пожалуйста, не обращайте внимания на тот факт, что на изображении показано «JPG», а я говорю о прозрачных изображениях - это было только первое изображение, представленное поиском в Googleмне и да, файл прозрачный png)