Półprzezroczysty PNG WinForm na półprzezroczystym PNG

Myślę, że brakuje mi czegoś oczywistego, ale nie mogę tego znaleźć po kilku godzinach poszukiwań. Czy nie ma sposobu, aby użyć PictureBox lub innego formantu do przechowywania obrazu z częściowymi przezroczystymi / alfa-mieszanymi pikselami i umieścić go nad innym obrazem i czy mieszanie będzie oparte na obrazie pod nim?

Na przykład daje to wyniki, które chcę:

Umieść panel na formularzu.Dodaj program obsługi OnPaint.W programie obsługi OnPaint narysuj 1 PNG, a następnie narysuj nad nim inny PNG, używając Graphics.DrawImage dla obu.

To nie:

Umieść PictureBox na formularzu i ustaw go na PNG.

Umieść inny PictureBox na formularzu i ustaw go na PNG.

Umieść drugą ramkę obrazu nad pierwszą.

... nawet jeśli drugie pole obrazu jest puste i ma kolor tła przezroczystego, nadal pokrywa obraz poniżej.

Przeczytałem, że wynika to ze wszystkich kontrolek winform będących oknami, więc z natury nie są przezroczyste.

... ale nawet 15-letnia platforma, z której przeprowadzam migrację, VCL Borlanda, miała kilka kontrolek bez okien, więc trudno jest obrazować WinFormy, czy nie ma przynajmniej łatwego rozwiązania?

Mój pierwszy przykład powyżej to jedna odpowiedź, prawda, ale dodaje to dużo pracy, gdy można użyć tylko jednego dużego panelu i narysować wszystkie swoje „kontrolki” wewnątrz niego. O wiele ładniejszy, jeśli możesz mieć osobne kontrolki z osobnymi zdarzeniami myszy / etc. Nawet jeśli nie jest to kontrola obrazu i kontrola, którą muszę narysować, byłoby dobrze, o ile mogę po prostu umieścić jeden obraz w każdej kontrolce. W VCL nazywali to „pudełkiem z farbą”, tylko prostokątnym obszarem, który można umieścić na formularzu i rysować na nim dowolne elementy. Ma własne zdarzenia myszy, Bounds itd. Jeśli nic w nim nie narysujesz, to tak jakby nie było go tam (w 100% przezroczyste) poza faktem, że wciąż ma zdarzenia myszy, więc może być użyte jako „gorąca” spot ”lub„ cel ”.

questionAnswers(2)

yourAnswerToTheQuestion