|
| |

VB.NET - Fortgeschrittene| Re: Zoom im PictureBox mit rubberband | |  | | Autor: Kuno60 | | Datum: 04.09.14 16:59 |
| Hallo,
hier ein einfaches Beispiel:
Class HauptForm
Dim startCorner As Point
Dim rubberBand As Rectangle
Dim rubberBanding As Boolean = False
Dim rubberBandColor As Color = Color.Yellow
Private Sub HauptForm_Load(sender As Object, e As EventArgs) Handles _
MyBase.Load
Me.PictureBox1.SizeMode = PictureBoxSizeMode.Normal
Me.PictureBox4.SizeMode = PictureBoxSizeMode.Zoom
End Sub
Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) _
Handles PictureBox1.MouseDown
If e.Button = MouseButtons.Left Then
rubberBanding = True
startCorner = e.Location
rubberBand = Rectangle.Empty
PictureBox1.Invalidate()
End If
End Sub
Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) _
Handles PictureBox1.MouseMove
If rubberBanding Then
rubberBand.Width = Math.Abs(e.X - startCorner.X)
rubberBand.Height = Math.Abs(e.Y - startCorner.Y)
rubberBand.X = Math.Min(e.X, startCorner.X)
rubberBand.Y = Math.Min(e.Y, startCorner.Y)
PictureBox1.Invalidate()
End If
End Sub
Private Sub PictureBox1_MouseUp(sender As Object, e As MouseEventArgs) _
Handles PictureBox1.MouseUp
rubberBanding = False
Dim bm As New Bitmap(PictureBox1.Image)
PictureBox4.Image = bm.Clone(rubberBand, Imaging.PixelFormat.DontCare)
End Sub
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles _
PictureBox1.Paint
Using pn As New Pen(rubberBandColor, 2) With {.DashStyle = _
Drawing2D.DashStyle.Dash}
e.Graphics.DrawRectangle(pn, rubberBand)
End Using
End Sub
End ClassDas Ganze funktioniert nur, wenn das Bild in PictureBox1 in Originalgröße angezeigt wird (SizeMode = Normal).
Die PictureBox4 zeigt den Bildausschnitt vergrößert, auf die volle Größe der PictureBox4, an.
Durch "SizeMode = Zoom" stimmt auch immer das Bildverhältnis.
Das Ganze wird komplizierter, wenn das Bild in PictureBox1 skaliert angezeigt wird oder wenn du eine feste Vergrößerung des Bildausschnittes haben willst. Dann musst du mit Transformation und Matrix arbeiten.
Gruß |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|