Винформ полупрозрачный PNG над полупрозрачным PNG

Я думаю, что я упускаю что-то очевидное, но я не могу найти это после нескольких часов поиска. Нет ли способа использовать PictureBox или другой элемент управления, чтобы содержать изображение с частичными прозрачными / альфа-смешанными пикселями, и размещать его поверх другого изображения, а смешивание основываться на изображении под ним?

Например, это дает результаты, которые я хочу:

Place a panel on a form. Add an OnPaint handler. In the OnPaint handler draw 1 PNG, then draw another PNG over it, using Graphics.DrawImage for both.

Это не:

Place a PictureBox on a form and set it to a PNG.

Place another PictureBox on the form and set it to a PNG.

Place the 2nd picture box over the first.

... даже если 2-й графический блок просто пуст и имеет цвет фона Transparent, он все равно покрывает изображение под ним.

Я читал, что это происходит из-за того, что все элементы управления winform являются окнами, поэтому по своей природе они не прозрачны.

... но даже у 15-летней платформы, с которой я мигрирую, с VCL Borland, было несколько элементов управления без окон, так что трудно представить себе winforms, по крайней мере, не существует простого решения?

Мой первый пример выше - это один ответ, правда, но он добавляет много работы, когда вы можете использовать только одну большую панель и нарисовать все свои элементы управления & quot; внутри него. Гораздо приятнее, если вы можете иметь отдельные элементы управления с отдельными событиями мыши и т. Д. Даже если бы не элемент управления изображением, а элемент управления, который я должен нарисовать сам, это было бы хорошо, если бы я мог просто поместить одно изображение в каждый элемент управления. В VCL они называли это «окном рисования», просто прямоугольной областью, которую вы могли бы разместить на форме и нарисовать на ней все, что захотите. Имеет собственные события мыши, границы и т. Д. Если вы ничего не рисуете в нем, это похоже на то, что его там даже нет (100% прозрачность), за исключением того факта, что он все еще получает события мыши, поэтому его можно использовать в качестве «горячей точки» или "цель" также.

Ответы на вопрос(2)

Ваш ответ на вопрос