2013-08-16 4 views
9

Gibt es eine einfache und praktische Möglichkeit, ein Bild in einer Bildbox mit Bildlaufleisten zu vergrößern?C#: Einfaches und praktisches Zoomen von Bildern mit Bildlaufleisten mit Bildlaufleisten

Im Moment benutze ich eine Bildbox in einem Panel mit automatischer Bildlauf aktiviert. Zum Vergrößern vergrößere ich die Bildbox und verschiebe sie mit den Bildlaufleisten auf dem Panel. Das Problem ist, dass es sich seltsam verhält. Zum Beispiel: Wenn Sie auf weit vergrößern, wird der Rand zwischen dem oberen und linken Formularrand und dem Bild größer und größer.

Das ist die Zoommethode. Ich habe es von 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; 

    } 

Jede Hilfe wird geschätzt.

Vielen Dank im Voraus.

Marco

EDIT: Zwei Screenshots eines ungezoomten und gezoomt (16-mal) Bild. Achten Sie auf den Rand zwischen dem oberen Rand des Bildes und dem oberen Rand des Formulars. ZoomedImage

+0

Einfache Antwort: Nein! Der aktuelle Weg, den Sie verwenden, ist die beste Wahl. Ich verstehe nicht, was das Problem damit ist, wie Sie in Ihrer Frage beschrieben haben. Ich denke, ein Screenshot wäre in diesem Fall gut. –

+0

@KingKing Ich habe zwei Screenshots hinzugefügt. –

+0

Es ist sehr seltsam, es sei denn, es gibt einen Code, der die 'Top' und' Left' Ihrer 'PictureBox' ändert. Sie sollten den gesamten Code selbst überprüfen, um ihn hier zu veröffentlichen. –

Antwort

3

Ich denke, es ist besser, das Bild und nicht die Bildbox zu zoomen (skalieren). Werfen Sie einen Blick auf diesen Artikel - http://www.codeproject.com/Articles/21097/PictureBox-Zoom

Und

How to zoom in&out an image in c#

+0

Okay. Und wenn ich das Bild neu skaliere, wie kann ich es in das Formular einfügen? Ich muss die Größe der Bilderbox aktualisieren, was mich zu meinem ersten Problem führt. Habe ich recht? :) –

+0

Wenn das Bild neu skaliert wird, was ist erforderlich? PAN (wo der Benutzer das Bild mit der Maus ziehen kann) oder Bildlaufleisten in der Bildbox? –

+0

Und was ist das Problem mit dem 2. Bild? Es scheint, es ist gezoomt und sieht gut aus. –

Verwandte Themen