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!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage