C# Alpha-Mischung Transparente PictureBox
Habe ich eine webcam-feed angezeigt wird, auf meiner form und möchte zu zeichnen. Ich wollte dies tun, indem Sie ein Bild-Feld, die ich gefunden habe, das PictureBox-Steuerelement unterstützt keine echte Transparenz statt nur die Farbe von der form. Es unterstützt keine Transparenz, das ist, wie ich es will angezeigt, ähnlich wie die Formen gemacht werden können, zu erscheinen.
Weiß jemand, wie dies zu tun? Oder haben Sie ein Steuerelement implementiert, die dies tun können?
InformationsquelleAutor PeteT | 2009-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Transparenz in Windows Forms ist eine Art gebrochen. Wie Sie entdeckt haben, ist es nicht wirklich unterstützen überlappende Steuerelemente; es zeigt nur die form wird die Hintergrundfarbe durch die transparenten Teile. Einige Windows-API-Magie, können Sie viele Steuerelemente angezeigt, als wirklich transparent, mit Unterstützung für überlappende, als dieser Artikel von Bob Powell demonstriert. Ich habe in der Lage, seine Technik-Arbeit für Etiketten und benutzerdefinierten Steuerelementen, aber ich denke, ich habe versucht, es zu machen, arbeiten für
PictureBox
mit enttäuschenden Ergebnissen. Eine Abhilfe könnte versuchen, erstellen Sie ein benutzerdefiniertes Steuerelement, das manuell zeichnet das Bild; ich habe nicht versucht. Hier ist ein forum post , wo ich Ihnen ein benutzerdefiniertes Steuerelement, unterstützt echte Transparenz (in meinem Griff auf, dass forum ist AtmaWeapon.) Mein Gedächtnis scheint zu suggerieren, dass dies funktioniert am besten für benutzerdefinierte Steuerelemente durch einige scheinbare Magie, die geschieht mit dem Microsoft-Steuerelemente, wenn Sie gerendert werden.Alternativ können Sie die Implementierung Ihrer Anwendung mithilfe von WPF statt WinForms. WPF funktioniert die Transparenz und unterstützt überlappende Steuerelemente. Dies ist eine ziemlich große Veränderung in, wie würden Sie Ihre Anwendung entwickeln, aber es funktioniert von Anfang an.
InformationsquelleAutor OwenP
In den meisten Fällen OwenP die Antwort, das mit der Methode Bob Powell demonstriert hier http://www.bobpowell.net/transcontrols.htm arbeiten. Jedoch, weil es ein direct-draw-interface der webcam das live-feed war immer an der Spitze sein, das andere Steuerelemente.
Um dieses Problem zu lösen habe ich ein wenig geschummelt und erstellt eine sekundäre form, öffnet sich über den video-feed dieses hatte keine Grenzen, war immer an der Spitze und angesichts der Transparenz, zeichnete ich direkt auf diesem Formular. Ich habe dann nur zu bewältigen hatte ein paar Ereignisse in dieser sekundären form zu halten, konzentrieren sich auf die ursprüngliche form und Griff, wenn ein anderes Programm im Einsatz.
InformationsquelleAutor PeteT
Könnten Sie das PictureBox-Steuerelement auf einem anderen seperaten Formular und verwenden Sie die Formulare Opacity-Wert in der Windows-Style-Kategorie. Würde das funktionieren?
InformationsquelleAutor