J'ai PictureBox picture
.
J'utilise:
picture.Size = bmp.Size;
picture.Image = bmp;
Supposons qu'il existe deux entiers maxWidth
et maxHeigth
.
Je souhaite ajouter une barre de défilement verticale/horizontale à picture
lorsque sa taille dépasse maxWidth
et/ou maxHeight
. Comment puis je faire ça?
Vous pouvez facilement le faire avec un Panel
Control
Insérez un panneau dans votre formulaire, par exemple panneau1 et définissez
panel1.AutoScroll = true;
insérez une PictureBox
à la Panel
, dites une image et définissez
picture.SizeMode = PictureBoxSizeMode.AutoSize;
et définir l'image
picture.Image = bmp;
j'espère que cela t'aides
Voici un projet dans lequel un utilisateur a créé un contrôle utilisateur ImagePanel
que vous pouvez déposer dans un formulaire; il vous donne des barres de défilement et une capacité de zoom.
Je l'ai mis au travail en plaçant également une image dans le contrôle d'un panneau, j'ai défini la propriété AutoScroll du panneau sur true, mais j'ai également défini la propriété Autosize du panneau sur True et la propriété Dock du panneau sur Fill (ainsi lorsque l'utilisateur redimensionne forme - le groupe le fera également). Pour Picturebox, j’ai défini la propriété Dock sur None et le SizeMode sur Autosize (afin qu’il soit redimensionné également lorsque le panneau et le formulaire sont redimensionnés. Cela a fonctionné comme un charme, la Picturebox a des barres de défilement et lorsque l’utilisateur redimensionne le formulaire - tout est toujours placé correctement!
Une autre suggestion consiste à placer la boîte à images dans un FlowlayoutPanel.
Définissez le défilement automatique du FlowlayoutPanel sur true et définissez le mode de taille d'image sur normal
L'utilisation d'un FlowlayoutPanel permet de s'assurer que l'image est toujours à 0,0 dans le panneau