Как сделать один picturebox поверх другого c
Перейти к содержимому

Как сделать один picturebox поверх другого c

  • автор:

Наложение PictureBox поверх другого PictureBox C# WinForms

введите сюда описание изображения

Суть проблемы такая: есть основной PictureBox, в него идёт поток изображений с камеры (В виде видео), я хочу наложить сверху другой PictureBox, чтобы указывать какие либо статусы (Разрыв, нестабильное соединение и пр.). Соответственно я создал ещё один PB и задал ему BackColor = Transparent, присвоил ему изображение с прозрачным фоном .png, также добавил его к основному PB — PictBox.Controls.Add(Status), но вместо ожидаемой мной прозрачности, PB который был наложен сверху просвечивает основной PB аж до фонового изображения, игнорируя при этом видеопоток, и в итоге вместо того, чтобы наблюдать за видео и видеть наложенный сверху статус, мы видим видео, на котором квадрат, просвечивающий до фона и нужное нам изображение статуса. Может кто знает, как с этим бороться?

Отслеживать
задан 20 ноя 2022 в 6:53
Walter Dornez Walter Dornez
13 3 3 бронзовых знака
pictureBox.BackColor = Color.Transparent
20 ноя 2022 в 7:07
@Виктор Это уже было сделано. Это описано в основном сообщении
20 ноя 2022 в 7:10
20 ноя 2022 в 7:12
@Виктор Спасибо, гляну
20 ноя 2022 в 7:13

@Виктор Сделал по гайду новый элемент управления с отрисовкой, теперь отрисовывается правильно, но сам по себе уходит под PB, пытался исправить стандартными Drawing.BringToFront(), но не вышло, не знаете, как это победить?

20 ноя 2022 в 8:39

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • c#
  • winforms
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420

C# — Разместите ящик с изображениями поверх другого ящика в режиме дизайна

Полный вопрос в заголовке. Используя Winforms, с стандартными элементами управления в Visual Studio, я пытаюсь перетащить его поверх другого picturebox, но это не позволит мне поместить два элемента управления в одну ячейку моей панели макета таблицы.

Любая помощь была признательна. Спасибо.

Поделиться Источник 16 сентября 2013 в 04:28

2 ответа

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

Или если вы создадите пользовательский элемент управления, который содержит два картинных ящика, вы можете добавить это в свою ячейку.

Поделиться 16 сентября 2013 в 04:45

Вы можете сначала удалить компонент панели на ячейке, а затем удалить два картинных ящика на этой панели.

Как отображать картинку в pictureBox?

Я видел то что написано на msdn, но после того как я указываю путь и запускаю программу, мне показывает только ErrorImage . Я уже даже провал с веб ссылки картинку, без толку, тот же результат. Мой код:

private void button1_Click(object sender, EventArgs e)

Буду очень благодарен за ответ примером.
Отслеживать
51.4k 87 87 золотых знаков 267 267 серебряных знаков 508 508 бронзовых знаков
задан 6 дек 2016 в 21:42
1 1 1 бронзовый знак
Это должно работать. Если показывает ErrorImage , очевидно, ошибка в пути к изображению.
7 дек 2016 в 8:44

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если в одну строку, то вот так:

pictureBox1.Image = new Bitmap(@"C:\Users\User\Desktop\Новая папка\182.img"); 

В целом, на MSDN отличный справочный материал — например, про PictureBox. Настоятельно рекомендую пользоваться справочными материалами — это гораздо быстрее.

Отслеживать
ответ дан 7 дек 2016 в 0:07
1,287 9 9 серебряных знаков 22 22 бронзовых знака

Да, у меня получилось сделать вашим способом, видимо я слегка не там читал. Но все же хотелось бы узнать, можно ли как то сделать что бы не указывать полный путь к папке [msdn.microsoft.com/en-us/library/… в примере сказано что можно, но по нему у меня не отображает картинку, а когда я пытаюсь сделать ` MyImage = new Bitmap(@»\WindowsFormsApplication18\WindowsFormsApplication18\Resources\76.png»);` код не проходит, ошибка «не допустимый параметр»

7 дек 2016 в 14:00

Можно — например, если изображение лежит в папке со скомпилированной программой. Тогда достаточно указать имя файла. В случае, если вы запускаете своё приложение из Visual Studio, скомпилированное приложение лежит примерно здесь: <путь к проекту>/bin/Debug или <путь к проекту>/bin/Release

Z-порядок pictureBox на форме

Author24 — интернет-сервис помощи студентам

Добрый вечер,
На форме несколько pictureBox с загруженными картинками и событиями (перемещения и поворота). У каждого pictureBox было установлено свойство picrureBox1.BackColor=Color.Transparent;
Теперь при увеличении размеров и загрузки картинки формата jpg в один pictureBox, другие pictureBox c png находятся поверх. А нужно наоборот. Как это сделать?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Создать PictureBox на второй форме с размерами из TextBox’ов, расположенных на первой форме
Добрый вечер, столкнулся с проблемой. У меня есть 2 TextBox’a, они находятся на первой форме. Мне.

Движение pictureBox по форме
добрый день, хотелось бы узнать, как реализовать движение pictureBox по форме? private.

Изображение на PictureBox отображается и на форме
Здравствуйте! Столкнулась с такой проблемой. Почему-то всё что рисуется в верхней части PictureBox.

Перемещение мышкой PictureBox’а по форме
Подскажите как мне сделать,чтобы в процессе компиляции я мог при нажатии на Pickturebox перемещать.

979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647

lebtan, проще, я думаю, было бы, если бы вы проблему заскринили и код привели. Так очень сложно понять о чем речь, во всяком случае мне.

Регистрация: 04.02.2016
Сообщений: 34

На картинке изображено несколько pictureBox. Один из них (с картинкой амперметра) при наведении на pictureBox меняет изображение и увеличивает его по таймеру. Получается, что данное изображение находится на заднем плане. Нужно поместить его на передний план.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
private void pictureBox4_DoubleClick(object sender, EventArgs e) { int w = pictureBox4.Width, h = pictureBox4.Height; pictureBox4.Image.RotateFlip(RotateFlipType.Rotate90FlipNone); pictureBox4.Width = h; pictureBox4.Height = w; if (k4 != 4) k4++; //количество поворотов фигуры else k4 = 1; pictureBox4.Refresh(); } private void pictureBox4_MouseDown(object sender, MouseEventArgs e) { x = e.X; y = e.Y; } private void pictureBox4_MouseMove(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) return; pictureBox4.Left = pictureBox4.Left + (e.X - x); pictureBox4.Top = pictureBox4.Top + (e.Y - y); pictureBox4.BackColor = Color.Transparent; Paint1(); } private void pictureBox4_MouseUp(object sender, MouseEventArgs e) { x = y = 0; } private void timer1_Tick(object sender, EventArgs e) { if (pictureBox5.Width  100) { pictureBox5.Width += 10; pictureBox5.Height += 10; Invalidate(); tt = 1; } else timer1.Stop(); } private void pictureBox5_Click(object sender, EventArgs e) { if (tt==1) { pictureBox5.Width = 50; pictureBox5.Height = 50; } } private void pictureBox5_MouseHover(object sender, EventArgs e) { if (qw == 1) { //Form1.Opacity = 80; pictureBox5.Image = Properties.Resources.Амперметр_общий; timer1.Enabled = true; qw = 2; } } private void pictureBox5_MouseLeave(object sender, EventArgs e) { if (qw == 2 && k5==1) { pictureBox5.Width = 50; pictureBox5.Height = 50; pictureBox5.Image = Properties.Resources.Амперметр2; qw = 1; } }

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

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