Wie pan-Bild im PictureBox

Habe ich eine benutzerdefinierte PictureBox können zoom in verwenden MouseWheel Veranstaltung. Jetzt möchte ich hinzufügen, dass ein Schwenk-Funktion, um es. Ich meine, wenn PictureBox ist im gezoomten Zustand, wenn der Benutzer Links klickt und hält die klicken dann die Maus bewegen, wird das Bild würde pan in das picturebox-Steuerelement.

Hier ist mein code, aber leider funktioniert es nicht! Ich weiß nicht, wo Sie zu suchen mehr...

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 bin zu Ahnen, die MouseMove Veranstaltung...ich bin nicht sicher, wenn etwas passiert, in diesem Fall und/oder nx und ny enthält die richtige Stelle.

Jedem hilft/Tipps ist wirklich appriciated!

Schreibe einen Kommentar