Как в WinForms сделать прозрачным PictureBox относительно своего родительского элемента?

У меня имеется форма одного цвета, кнопка другого цвета и PictureBox с BackColor: Transparent . У PictureBox прописан родительский элемент — кнопка. При запуске программы я наблюдаю, что фон у PictureBox цвета формы, а не родительского элемента — кнопки. Подскажите как исправить или куда копать, чтобы фон у PictureBox стал фоном кнопки.
Отслеживать
1,832 1 1 золотой знак 3 3 серебряных знака 19 19 бронзовых знаков
задан 21 фев 2022 в 8:01
SlavaKorol SlavaKorol
21 5 5 бронзовых знаков
Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете.
21 фев 2022 в 8:05
Windows Forms не поддерживает прозрачность. Поэтому только на костылях, например относледоваться от PB и переопределить OnPaint, отрисовывать кнопку в битмап, вырезая из него кусок под себя и подкладывая под картинку. То есть написать свой собственный редрер PictureBox. Может есть способ хитрее, но я не практиковал. Вообще Winforms — это как бы не про красивые интерфейсы.
21 фев 2022 в 8:07
@aepot, если постараться, то поддерживает.
21 фев 2022 в 9:40
@Qwertiy о чем я и говорю, придется постараться. Я имел в виду поддержку нативного характера, ее нет.
21 фев 2022 в 10:38
Мне также было необходимо, чтобы цвет кнопки менялся при наведении. Вместе с этим должен был меняться и цвет фона у PictureBox. Поэтому я решил проблему через события. При наведении мыши на кнопку, менял фон кнопки и PictureBox. При покидании курсора мыши с кнопки, соответственно, менял фон у кнопки и PictureBox на другой.
Как сделать picturebox прозрачным c
Профиль
Группа: Участник
Сообщений: 26
Регистрация: 17.9.2006
Репутация: нет
Всего: нет
Здравствуйте.
Возникла следующая проблема: есть фон, он в форме помещается на picturebox. далее Создаю еще один picturebox. После во 2й пиктуребокс я загружаю такую картинку, например букву А, может какой-то рисунк типа формы а или в таком духе. сама картинка сохранена в gif под web типапрозрачный фон. ДАлее у себя пишу:
pictureBox2.Image = Image.FromFile(«KARTINKO.gif»);
b = (Bitmap)pictureBox2.Image;
b.MakeTransparent(b.GetPixel(0, 0));
pictureBox2.Image = new Bitmap(b);
и КОГДА у меня picturebox2 перемещается по picturebox1, то фон вокруг зоны picturebox2 серый, цвета стандартной формы. Как мне сделать, чтобы этот фон не был, т.е. например я прохожу на picturebox1 и я вижу толькобукву A и дальше фон picturebox1?
За ранее благодарен
| Дата 3.3.2008, 12:18 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006
Репутация: 2
Всего: 4
Попробуй рисовать свою букву «А» прямиком на фоне. То есть загрузить битмап, сделать прозрачным.
Короче так:
делаешь код отрисовщика picturebox с фоном:
| Код |
| private void pictureBox1_Paint(object sender, PaintEventArgs e) Bitmap bmp = Transparent.Properties.Resources.LetterA; bmp.MakeTransparent(Color.White); e.Graphics.DrawImage((Image)bmp, new Point(100, 100)); > |
Как сделать picturebox прозрачным c
Доброго времени суток, господа!
В веб приложениях C# (Asp.Net 4.0) доступна компонента ImageBox. Загрузишь в него картинку.png с прозрачным фоном — без проблем выведется прозрачность. А в windows приложениях нет этой компоненты, есть только PictureBox. В нем картинка НЕ ОТОБРАЖАЕТСЯ ПРОЗРАЧНОЙ. пробовал так:
PictureBox1.BackColor = Color.Transparent;
Картинка прозрачна лишь относительно формы. А вот если ее наложить на другую картинку, то она отображается на второй картинке с фоном основной формы, то есть относительно второй картинки первая непрозрачна. Предложите решение задачи: вывести на форму две картинки, чтобы оба были прозрачны как относительно формы так и относительно друг друга! Спасибо
| CYBERISLAM |
| Посмотреть профиль |
| Найти ещё сообщения от CYBERISLAM |
Как сделать в c# прозрачным элемент pictureBox?
Нужно на webBrowser сверху наложить прозрачный элемент, чтобы нельзя было кликать по webBrowser, но можно было видеть информацию. Я наложил сверху pictureBox и выставил Transparent, но не помогло. Как это можно сделать прозрачный элемент?
- Вопрос задан более трёх лет назад
- 1163 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 1

Насколько я помню, на windows forms никак. А если делать на WPF, то там с этим проблем нет. Но думаю, эту проблему можно решить более простым способом, че таким извращенным.
Ответ написан более трёх лет назад