Можно ли создать прозрачный фон для PictureBox в WinForms? - PullRequest
7 голосов
/ 13 февраля 2011

Я хочу сделать прозрачным фон элемента управления PictureBox. В PictureBox (прямоугольная форма) я поместил значок (круглой формы). Я хочу сделать иконку прозрачной, чтобы другая часть под иконкой была видимой.

Я попытался установить для свойства PictureBox.BackColor значение "Прозрачный", но оно не работает. Я также пытался установить его во время выполнения с помощью метода Color.FromArgb, но он тоже не работает.

Есть ли решение этой проблемы?

Ответы [ 3 ]

4 голосов
/ 13 февраля 2011

Настройка pictureBox.BackColor = Color.Transparent; определенно должна работать.

Также проверьте, если вы устанавливаете альфа-канал цвета при использовании Color.FromArgb(0, 0, 0, 0); (это первый параметр, ноль означает прозрачный цвет)

И, конечно же, убедитесь, что ваши иконки имеют прозрачный фон.

2 голосов
/ 13 февраля 2011

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

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

0 голосов
/ 06 апреля 2014

Привет, вы должны установить значок в другой части под значком с помощью этого

icon_pictureBox_name.Controls.Add (other_portion_picturBox_name);

и после этого вы можете установить свойство PictureBox.BackColor в значение "Прозрачный", и оно будет работать;)

...