it-swarm.com.de

Wie bekomme ich Bildlaufleisten in Picturebox?

Ich habe PictureBox picture.

Ich benutze:

picture.Size = bmp.Size;
picture.Image = bmp;

Nehmen wir an, es gibt zwei Ganzzahlen maxWidth und maxHeigth.
Ich möchte eine vertikale/horizontale Bildlaufleiste zu picture hinzufügen, wenn deren Größe maxWidth und/oder maxHeight überschreitet. Wie kann ich das machen?

57
Ichibann

Sie können dies leicht mit einem Panel-Steuerelement tun

Fügen Sie ein Panel in Ihr Formular ein, sagen Sie Panel1 und legen Sie fest

panel1.AutoScroll = true;

fügen Sie eine PictureBox in die Panel ein, sagen Sie Bild und setzen Sie

picture.SizeMode = PictureBoxSizeMode.AutoSize;

und stellen Sie das Bild ein

picture.Image = bmp;

hoffe das hilft

127
Binil

Hier ist ein Projekt, bei dem ein Mann ein ImagePanel-Benutzersteuerelement erstellt hat, das Sie in ein Formular einfügen können. Es gibt Bildlaufleisten und Zoomfunktion.

http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx

4
James King

Ich habe es durch das Einfügen einer picturebox in ein Panel-Steuerelement zum Laufen gebracht. Ich habe die AutoScroll-Eigenschaft des Panels auf true gesetzt, aber auch die Autosize-Eigenschaft des Panels auf True und die Dock-Eigenschaft des Panels auf Fill (auf diese Weise, wenn der Benutzer die Größe ändert) Formular - so wird das Panel). Für die Picturebox habe ich die Dock-Eigenschaft auf None und den SizeMode auf Autosize gesetzt (damit die Größe auch für das Panel und das Formular geändert wird. Es funktionierte wie ein Zauber, die Picturebox hat Bildlaufleisten und wenn der Benutzer die Größe ändert, ist alles noch vorhanden.) richtig platziert!

1
smhiker

Ein anderer Vorschlag besteht darin, die Bildbox in ein FlowlayoutPanel zu legen. 

Setzen Sie den automatischen Bildlauf des FlowlayoutPanels auf "True" und den Bildgrößenmodus auf "Normal"

Wenn Sie ein FlowlayoutPanel verwenden, stellen Sie sicher, dass das Bild immer 0,0 ist

0
Smith