So verschieben Sie ein Bild in PictureBox
Ich habe eine SittePictureBox
die mit zoomen könnenMouseWheel
Veranstaltung. Jetzt möchte ich eine Schwenkfunktion hinzufügen. Ich meine, wenn PictureBox im gezoomten Zustand ist, wenn der Benutzer mit der linken Maustaste klickt und den Klick hält und dann die Maus bewegt, wird das Bild in der Bildbox verschoben.
Hier ist mein Code, aber leider funktioniert es nicht! Ich weiß nicht mehr, wo ich suchen soll ...
private Point _panStartingPoint = Point.Empty;
private bool _panIsActive;
private void CurveBox_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Focus();
_panIsActive = true;
_panStartingPoint = e.Location;
}
}
private void CurveBox_MouseUp(object sender, MouseEventArgs e)
{
_panIsActive = false;
}
private void CurveBox_MouseLeave(object sender, EventArgs e)
{
_panIsActive = false;
}
private void CurveBox_MouseMove(object sender, MouseEventArgs e)
{
if(_panIsActive && IsZoomed)
{
var g = CreateGraphics(); //Create graphics from PictureBox
var nx = _panStartingPoint.X + e.X;
var ny = _panStartingPoint.Y + e.Y;
var sourceRectangle = new Rectangle(nx, ny, Image.Width, Image.Height);
g.DrawImage(Image, nx, ny, sourceRectangle, GraphicsUnit.Pixel);
}
}
Ich vermute dasMouseMove
event ... Ich bin mir nicht sicher, ob bei diesem Event etwas passiert und / odernx
undny
enthält richtigen Punkt.
Jede Hilfe / Tipps ist wirklich dankbar!