Hallo ihr,
bin ein relativer anfänger in VB aber probier gerne etwas aus.
Jetzt hatte ich eine Art Fotoanzeige gemacht, die Bilder in Ardnern anzeigt, durch Klick auf das angezeigte Bild (unsichtbare "Rectangle"), das nächste Bild anzeigt, und zoomen kann.
Funktioniert auch alles einzeln, aber sobald ich zoome und das "Rectangle" neu skaliere, verschiebt es sich, obwohl die "location" und "size" eigentlich passen sollte...
Anbei der entsprechende Code:
Button1 zoomt das Bild.
Das Panel beinhaltet die Picturebox.
Meiner Logik nach sollten die "Rectangle" nach dem zoom aktualisiert werden und wieder passen. tun sie aber nicht.
Bin für jede hilfe dankbar!
Grüße,
_Bob
bin ein relativer anfänger in VB aber probier gerne etwas aus.
Jetzt hatte ich eine Art Fotoanzeige gemacht, die Bilder in Ardnern anzeigt, durch Klick auf das angezeigte Bild (unsichtbare "Rectangle"), das nächste Bild anzeigt, und zoomen kann.
Funktioniert auch alles einzeln, aber sobald ich zoome und das "Rectangle" neu skaliere, verschiebt es sich, obwohl die "location" und "size" eigentlich passen sollte...
Anbei der entsprechende Code:
Quellcode
- Public Class Form1
- Private _originalLocation As New Point
- Private _originalSize As Size = Nothing
- Private _scale As Single = 1
- Private _scaleDelta As Single = 0.0001
- Dim l As Rectangle
- Dim r As Rectangle
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- PictureBox1.Size = Panel1.Size
- PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
- PictureBox1.Image = Bitmap.FromFile("bild_url")
- _originalLocation = PictureBox1.Location
- l = New Rectangle(PictureBox1.Location.X,
- PictureBox1.Location.Y,
- PictureBox1.Width / 2,
- PictureBox1.Height)
- r = New Rectangle(PictureBox1.Location.X + (PictureBox1.Width / 2),
- PictureBox1.Location.Y,
- PictureBox1.Width / 2,
- PictureBox1.Height)
- If PictureBox1.Image IsNot Nothing Then
- PictureBox1.Size = Panel1.Size
- _originalSize = Panel1.Size
- End If
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- _scaleDelta = Math.Sqrt(PictureBox1.Width * PictureBox1.Height) * 0.0001
- _scale += _scaleDelta
- PictureBox1.Size = New Size(CInt(Math.Round(_originalSize.Width * _scale)),
- CInt(Math.Round(_originalSize.Height * _scale)))
- PictureBox1.Location = New Point(_originalLocation.X - ((PictureBox1.Width - Panel1.Width) / 2),
- _originalLocation.Y - ((PictureBox1.Height - Panel1.Height) / 2))
- l = New Rectangle(PictureBox1.Location.X,
- PictureBox1.Location.Y,
- PictureBox1.Width / 2,
- PictureBox1.Height)
- r = New Rectangle(PictureBox1.Location.X + (PictureBox1.Width / 2),
- PictureBox1.Location.Y,
- PictureBox1.Width / 2,
- PictureBox1.Height)
- End Sub
- End Class
Button1 zoomt das Bild.
Das Panel beinhaltet die Picturebox.
Meiner Logik nach sollten die "Rectangle" nach dem zoom aktualisiert werden und wieder passen. tun sie aber nicht.
Bin für jede hilfe dankbar!
Grüße,
_Bob
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „_Bob“ ()