Список похожих постов указан в конце этого ответа.
Этот ответ относится к pictureBoxes и Winforms (в других постах ниже некоторые повторяют, что WPF уже хорошо это решает)
- Создать Winform
- Создание x2 PictureBoxes
- foreground_pictureBox // графическое поле 'перед' фоном '
- background_pictureBox // картинная рамка 'за' передним планом '
- Добавить событие 'paint' для каждого pictureBox
- выделить объект в «конструкторе»
- выберите вкладку «Свойства» (или щелкните правой кнопкой мыши и выберите во всплывающем меню)
- выберите кнопку событий (маленькая молния)
- двойной щелчок в пустом поле справа от события 'paint'
- Добавьте следующий код в функцию загрузки основной формы (если она еще не добавлена, используйте подход на шаге 3 и выберите «под нагрузкой», а не «рисовать»)
=
private void cFeedback_Form_Load(object sender, EventArgs e)
{
...
// Ensure that it is setup with transparent background
foreground_pictureBox.BackColor = Color.Transparent;
// Assign it's 'background'
foreground_pictureBox.Parent = background_pictureBox;
...
}
5. В вызове 'paint' для background_pictureBox ':
=
private void background_pictureBox_Paint(object sender, PaintEventArgs e)
{
...foreground_pictureBox_Paint(sender, e);
}
6. В вызове foreground_pictureBox_Paint добавьте графические вызовы, которые вы хотите отображать на переднем плане.
Эта тема повторяется в нескольких сообщениях, кажется:
как к макияж PictureBox прозрачный
с-острый PictureBox-прозрачно-фон-оленья кожа-кажется, к работе
сделать перекрывающийся-PictureBox-прозрачным-в-с-нетто
а-PictureBox-проблема