Ein PictureBox-Problem
Ich habe ein problem:
Habe ich Bild 3 Boxen mit 3 verschiedenen Bilder , wie in Bild
was kann ich zu pictureBox3 also beide Bilder sehen gleich.....
BEARBEITET:
Ich will mich pictureBox3 auf pictureBox2,
So gibt es keine Option zum Zusammenführen Sie auf ein einzelnes Bild
Du musst angemeldet sein, um einen Kommentar abzugeben.
Füge ich ein weiteres Beispiel, das nach den aktualisierten Anforderung ermöglicht das verschieben image3.
Um es zu erhalten arbeitend, setzen Sie ein Bild mit Transparenz in
Resources\transp.png
Diese verwendet das gleiche Bild für alle drei Bilder, aber Sie können ersetzen Sie einfach transparentImg für image1 und image2, um geeignete Bilder.
Einmal die demo ist gestartet, das mittlere Bild kann gezogen werden-fallen gelassen um die form.
Stellen Sie sicher, dass das Bild in
pictureBox3
transparent ist. Legen Sie dieBackColor
transparent. Im code, legen Sie dieParent
Eigenschaft despictureBox3
zupictureBox2
. Passen Sie dieLocation
KoordinatenpictureBox3
da Sie relativ zu den Koordinaten despictureBox2
sobald Sie geändert haben, dieParent
.Im designer sehen Sie nicht die Transparenz, sondern zur Laufzeit werden Sie.
Update
In der Bild, die linke Seite zeigt die designer-Ansicht der rechten Seite ist die runtime-version.
Ein weiteres update
Ich wirklich nicht verstehen, wie es möglich wäre, dass dies nicht funktioniert für Sie. Ich nehme an, es muss etwas sein, was wir anders machen. Ich beschreibe die genauen Schritte, die zum erstellen eines funktionierenden Beispiels. Wenn Sie Folgen Sie den exakt gleichen Schritte, ich Frage mich, ob wir die gleichen Ergebnisse erhalten, oder nicht. Die nächsten Schritte beschreiben, was zu tun und verwenden Sie zwei Bilder, die ich im Netz gefunden.
Nun platzieren Sie den folgenden code in des Formulars OnLoad-event-handler:
Das ist es! Wenn ich dieses Programm bekomme ich ein transparentes Bild auf ein anderes Bild.
pictureBox3.Location.Offset
aber das funktioniert nicht, da dieLocation
- Eigenschaft gibt einen Wert zurück, nicht eine Referenz. Wenn Sie verwenden möchtenOffset
erstellen Sie eine variable, um denPoint
verwendenOffset
auf die variable, und weisen Sie ihnpictureBox3.Location
.Für den Anfang, stellen Sie die
BackColor
Eigenschaft von PictureBox3 Transparent. Diese Arbeit sollte in fast allen Fällen.Sollten Sie auch ein Bild mit einem transparenten hintergrund statt weiß, damit Sie nicht die weißen Ränder um Ihre lila Kreis. (Empfohlen Bild format: PNG)
Update
Nach den Antworten, die ich bekam, es erscheint die Einstellung der
BackColor
zu Transparent funktioniert nicht. In diesem Fall ist es am besten, Sie behandeln diePaint
- Ereignis der PictureBox und machen die Malerei des new image selbst als Albin schlug.Dieser code wird den trick tun:
Zeichnet es das Bild von pictureBox2 auf das bestehende Bild von pictureBox1.
Könnten Sie einige hack durch überschreiben der OnPaint und die Sachen, Beispiel hier.
Aber ich würde empfehlen, das Zusammenführen der Bilder in pictureBox2 und 3 in einer einzigen Bildes vor dem anzeigen in eine einzige pictureBox.