How to make picturebox transparent?
I am making an application in C# .NET. I have 8 picture boxes in it. I used PNG images with transparent background but in my form it is not transparent when it comes above another image.
I am using Visual Studio 2012. This is a screenshot of my form:
![]()
7 Answers 7
One way to do this is by changing the parent of the overlapping picture box to the PictureBox over which it is lapping. Since the Visual Studio designer doesn’t allow you to add a PictureBox to a PictureBox, this will have to be done in your code (Form1.cs) and within the Intializing function:
Just change the picture box names to what ever you need. This should return:

![]()
GameBoard is control of type DataGridView; The image should be type of PNG with transparent alpha channel background;

![]()
Load the image like this:
I’ve had a similar problem like this. You can not make Transparent picturebox easily such as picture that shown at top of this page, because .NET Framework and VS .NET objects are created by INHERITANCE! (Use Parent Property).
I solved this problem by RectangleShape and with the below code I removed background, if difference between PictureBox and RectangleShape is not important and doesn’t matter, you can use RectangleShape easily.
Можно ли создать прозрачный фон для PictureBox в WinForms?
Я хочу сделать фон управления PictureBox прозрачным. В PictureBox (прямоугольная форма) я поместил значок (круглая по форме). Я хочу сделать значок прозрачным, чтобы отображалась другая часть под значком.
Я попытался установить для свойства PictureBox.BackColor значение «Прозрачный», но он не работает. Я также пытался установить его во время выполнения с помощью метода Color.FromArgb , но он тоже не работает.
Есть ли какое-либо решение этой проблемы?
3 ответа
Настройка pictureBox.BackColor = Color.Transparent; определенно должна работать.
Также проверьте, настроен ли альфа-канал цвета при использовании Color.FromArgb(0, 0, 0, 0) ; (это первый параметр, ноль означает прозрачный цвет)
И, конечно же, убедитесь, что ваши значки имеют прозрачный фон.
Если использовать WinForms , то настройка цвета фона на прозрачность не будет работать, так как обработка прозрачности не является каскадной системой — вы можете (в большинстве случаев) установить прозрачность (или, скорее, непрозрачность) элемента управления в целом, используя Opacity , однако это изменит альфа-канал всего экрана управления, что даст вашим изображениям видимость.
Одно из решений может заключаться в том, чтобы установить цвет фона PictureBox как цвет элемента управления под ним (например, цвет формы). Но этого может быть недостаточно в вашей ситуации.
hi вы должны установить значок на другой части под значком, используя этот
Как сделать picturebox прозрачным c
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
![]()
- ProfileText
- Sign in
Answered by:
Question
I am useing a picturebox with a image. i have a picture of a plane with i being like black with a green background and i was wondering how do i make the green on the background of my image to be transparent inside the picture box. do i use something like adobe then set the picturebox backcolor to transparent? plases help if u need more inof a a smaple of code just let me know.
Answers
Use the ImageList to add the picture and add the transparent color to it and then assign the picture to the picturebox
All replies
Use the ImageList to add the picture and add the transparent color to it and then assign the picture to the picturebox
Могу ли я создать прозрачный фон на PictureBox в WinForms?
Я хочу сделать фон PictureBox контроль прозрачный. в PictureBox (прямоугольная форма), я поместил значок (круглой формы). Я хочу сделать значок прозрачным, чтобы была видна другая часть под значком.
Я пробовал установить PictureBox.BackColor значение «Прозрачный», но оно не работает. Я также пытался установить его во время выполнения с помощью Color.FromArgb метод, но он тоже не работает.
Есть ли решение этой проблемы?
задан 13 фев ’11, 08:02
Что именно находится под окном изображения, что вы хотите видеть? — Cody Gray♦
Этот вопрос задают очень часто. Видеть: C #, как сделать фон изображения прозрачным? и Проблема с PictureBoxсреди многих много другие. — Cody Gray♦
3 ответы
настройка pictureBox.BackColor = Color.Transparent; определенно должно работать.
Также проверьте, настраиваете ли вы альфа-канал цвета при использовании Color.FromArgb(0, 0, 0, 0) ; (это первый параметр, ноль означает прозрачный цвет)
И, конечно же, убедитесь, что у ваших иконок прозрачный фон.
Установка прозрачного цвета фона не делает эти пиксели прозрачными по умолчанию. Это заставляет их иметь цвет фона родительского элемента управления. — Коды
@CodeInChaos: конечно, это видно, когда «прозрачный» элемент управления перекрывает другой элемент управления. Это потому, что «прозрачный» элемент управления просит родительский элемент управления рисовать фон. — Сергей Березовский
AFAIK, это будет работать только в соответствии с вашим примером в комментариях к моему ответу: то есть, когда родительские элементы управления не используют сплошной цвет, то есть изображение. — Грант Томас
@Мистер. Разочарование: это не зависит от того, какой тип фона используется родительским элементом управления — будь то изображение или сплошной элемент управления, или userPaint — фон родителя будет нарисован на «прозрачном» дочернем элементе. — Сергей Березовский
При использовании WinForms то установка прозрачного цвета фона не будет работать, поскольку обработка прозрачности не является каскадной системой — вы можете (в большинстве случаев) установить прозрачность (или, скорее, непрозрачность) всего элемента управления с помощью Opacity свойство, однако это изменит альфа-канал всего дисплея управления, придав вашим изображениям прозрачность.
Одним из решений может быть установка цвета фона для PictureBox быть цветом элемента управления под ним (например, цвет формы). Но в вашей ситуации этого может быть недостаточно.