2013-08-16 14 views
9

Esiste un modo semplice e funzionale per ingrandire un'immagine in una casella immagine, incluse le barre di scorrimento?C#: modo semplice e funzionale per ingrandire le immagini delle immagini con le barre di scorrimento

Al momento, utilizzo una casella di immagine in un pannello con scorrimento automatico attivato. Per ingrandire, ingrandisco la casella immagine e la sposto con le barre di scorrimento sul pannello. Il problema è che si comporta in modo strano. Ad esempio: se si esegue lo zoom in avanti, il margine tra il bordo del modulo superiore e sinistro e l'immagine diventa sempre più grande.

Questo è il metodo di zoom. L'ho preso da here.

private void ZoomInOut(bool zoom) 
    { 
     //Zoom ratio by which the images will be zoomed by default 
     int zoomRatio = 10; 
     //Set the zoomed width and height 
     int widthZoom = pictureBox_viewer.Width * zoomRatio/100; 
     int heightZoom = pictureBox_viewer.Height * zoomRatio/100; 
     //zoom = true --> zoom in 
     //zoom = false --> zoom out 
     if (!zoom) 
     { 
      widthZoom *= -1; 
      heightZoom *= -1; 
     } 
     //Add the width and height to the picture box dimensions 
     pictureBox_viewer.Width += widthZoom; 
     pictureBox_viewer.Height += heightZoom; 

    } 

Qualsiasi aiuto è apprezzato.

Grazie in anticipo.

Marco

EDIT: Due screenshot di un'immagine di una zoomata (16 volte) senza zoom e. Prestare attenzione al margine tra il bordo superiore dell'immagine e il bordo superiore del modulo. ZoomedImage

+0

Risposta semplice: No! L'attuale modalità di utilizzo è la scelta migliore. Non capisco davvero quale sia il problema che hai descritto nella tua domanda. Penso che una schermata dovrebbe essere buona in questo caso. –

+0

@KingKing Ho aggiunto due screenshot. –

+0

È molto strano, a meno che non ci sia del codice che modifica "Top" e "Sinistra" del tuo "PictureBox". Dovresti controllare tu stesso l'intero codice per postarlo qui. –

risposta

3

Penso sia meglio ingrandire (ridimensionare) l'immagine e non la casella immagine. Date un'occhiata a questo articolo - http://www.codeproject.com/Articles/21097/PictureBox-Zoom

E

How to zoom in&out an image in c#

+0

Ok. E quando ridimensiono l'immagine, come posso inserirla nel modulo? Ho bisogno di aggiornare la dimensione della finestra immagine che mi porta al mio primo problema. Ho ragione? :) –

+0

Quando l'immagine viene ridimensionata, cosa è richiesto? PAN (dove l'utente può scorrere l'immagine usando il trascinamento del mouse) o barre di scorrimento nella casella immagine? –

+0

E qual è il problema con la seconda immagine? Sembra che sia ingrandito e sembra ok. –

Problemi correlati