Перейти к содержимому

Как сделать picturebox прозрачным c

  • автор:

Как в 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

Avarskiy

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

Ответ написан более трёх лет назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *