PNG semi-transparente Winforms sobre PNG semitransparente

Acho que devo estar perdendo algo óbvio, mas não consigo encontrar isso depois de várias horas de pesquisa. Não há nenhuma maneira de usar um PictureBox ou outro controle para conter uma imagem com pixels transparentes / alfa-misturados parciais, e colocar isso sobre outra imagem e ter a mesclagem baseada na imagem abaixo dela?

Por exemplo, isso produz os resultados que eu quero:

Coloque um painel em um formulário.Adicione um manipulador OnPaint.No manipulador OnPaint, desenhe 1 PNG e desenhe outro PNG sobre ele, usando Graphics.DrawImage para ambos.

Isso não:

Coloque um PictureBox em um formulário e configure-o para um PNG.

Coloque outro PictureBox no formulário e defina-o como um PNG.

Coloque a segunda caixa de imagem sobre a primeira.

... mesmo que a segunda caixa de imagem esteja vazia e tenha uma cor de fundo Transparente, ela ainda cobre a imagem abaixo dela.

Eu li isso decorre de todos os controles winform sendo janelas, por natureza não são transparentes.

... mas mesmo a plataforma de 15 anos da qual estou migrando, a VCL da Borland, tinha vários controles sem janelas, por isso é difícil imaginar que as winforms não tenham pelo menos uma solução fácil?

Meu primeiro exemplo acima é uma resposta, é verdade, mas isso adiciona muito trabalho quando você só pode usar um grande painel e desenhar todos os seus "controles" dentro dele. Muito melhor se você pode ter controles separados com eventos de mouse separados / etc. Mesmo que não seja um controle de imagem e um controle que eu tenha que desenhar a mim mesmo, tudo bem, contanto que eu possa colocar uma imagem em cada controle. Na VCL, eles chamavam isso de "caixa de pintura", apenas uma área de retângulo que você poderia colocar em um formulário e desenhar o que quiser nele. Tem seus próprios eventos de mouse, Limites, etc. Se você não desenhar nada nele, é como se ele não estivesse lá (100% transparente) além do fato de ainda receber eventos de mouse, então pode ser usado como um "hot" spot "ou" target "também.

questionAnswers(2)

yourAnswerToTheQuestion