Прозрачные графические поля

#winforms #c -cli #picturebox

#winforms #c -cli #графическое поле

Вопрос:

Мне очень, очень нужна ваша помощь. Мой проект следующий.

У меня есть a pictureBox1 , который является родительским для всех других pictureBoxes , которые я создаю с помощью array. Они pictureBoxes меньше, чтобы я мог перемещать их по pictureBox1 .

Для каждого вновь созданного pictureBox я устанавливаю следующие свойства:

 PB[i]->Parent = pictureBox1
PB[i]->BackColor = Color::Transparent 
  

В то же время я установил для них PNG-файл, backcolor который также прозрачен.

При одном pictureBox включении pictureBox1 все в порядке. Но когда два или более pictureBoxes расположены вместе, они просто блокируют содержимое друг друга. Я пытался вывести на передний план, но это не сработало. Который pictureBox находится сверху, он блокирует pictureBox под ним.

Как я могу установить или сделать взаимную прозрачность для pictureBoxes , в то время как их родительский элемент один pictureBox1 ?

Комментарии:

1. Вы не можете. PictureBox — один из самых расточительных элементов управления, наряду с Label, который сжигает все окно для замены одной строки кода. Удобство наведения курсора мыши, вот и все. Используйте Graphics::drawImage(), это решает вашу проблему, поскольку накладывает слой paint.

2. Если вам разрешено, попробуйте это с WPF, это может решить вашу проблему.

3. Ханс Пассант благодарит. Это хорошая идея. Это то, чего я хотел.