11
votes

Redimensionnez une image dans une boîte à images aussi importante que possible, tout en maintenant le ratio de format?

J'essaie de le faire pour que une image dans une image de contrôle Picturebox ajuste sa taille automatiquement en fonction de la taille de la fenêtre, mais maintenez le rapport de format. Jusqu'à présent, définissez simplement Sizemode à STRETTIPIMAGE amène l'image à s'adresser à l'ensemble de la commande Picturebox. Cela ignore le ratio de format, ce qui n'est pas ce que je veux.

est-il possible de maintenir le rapport de format, mais étirez-vous toujours l'image au plus grand qu'il peut aller de manière dynamique à mesure que la taille de la forme change? Est-il possible de faire cela et l'avoir toujours centré? J'imagine que je pourrais recréer l'image en mémoire chaque fois que la fenêtre est redimensionnée, mais cela ressemble à une mauvaise idée.


0 commentaires

4 Réponses :


2
votes

Changer le "Sizemode" en ZOOM . Comme son nom l'indique, "SallImImage" l'étendra pour s'adapter au fichier image. Le processus facile d'élimination vous aurait donné le même résultat.


0 commentaires

2
votes

Selon le imagesboxSizemode Documentation Vous pouvez spécifier imageboxssizemode.zoom pour obtenir l'image pour conserver son rapport de format. Il fera zoomer aussi grand que possible sans aucune partie de l'image débordant de la boîte d'images.

Et vous pouvez jouer avec le < Code> Dock Propriété (paramètre dockstyle.fill ) pour obtenir la zone d'image pour redimensionner à la taille de son conteneur.


0 commentaires

16
votes

Je pense que c'est l'effet de PictureboxSizemode.zoom Code> . La documentation indique que:

La taille de l'image est augmentée ou diminuée de maintenir le rapport taille. P> blockQuote>

Vous avez défini ceci sur le imagesbox.sizemode code> propriété. La section "remarques" de la documentation de cette fonction dit également: P>

Utilisation de la valeur de zoom entraîne l'étirement de l'image ou rétrécie pour s'adapter à la vue d'images; Cependant, le rapport de format dans l'original est maintenu. P> blockQuote>

Vous pouvez, bien sûr, définissez la propriété imagebox.sizemode code> dans la fenêtre Propriétés du concepteur ou dans le code (par exemple, dans le constructeur de votre formulaire): P>

myPictureBox.SizeMode = PictureBoxSizeMode.Zoom;


1 commentaires

Merci, j'ai complètement manqué le paramètre "zoom". Cela fait exactement ce que je veux, bien que ce soit bien de connaître les internes que vous avez expliqués, notamment graphiques.Drawimage - je peux avoir une utilisation pour cela à l'avenir ...



-4
votes

Vous pouvez l'ajouter à un contrôle de navigateur Web. Utilisation du bouton Ctrl et de la souris, vous pouvez zoomer autant que vous le souhaitez.


0 commentaires