Как ограничить панорамирование изображения в границах - PullRequest
0 голосов
/ 22 октября 2019

У меня есть изображение, и я панорамирую его после масштабирования, при панорамировании по горизонтали изображение перемещается, оставляя пустое пространство слева. Я хочу ограничить, когда изображение достигло предела. То же самое для верхнего, правого, нижнего панорамирования.

Панорамированное изображение Ожидаемый вывод

     private void Grid1_MouseMove(object sender, MouseEventArgs e)
    {
        if (!image1.IsMouseCaptured) return;

        Point p = e.MouseDevice.GetPosition(image1);

        var rect2 = new Rect(image1.RenderSize);
        Bounds = image1.TransformToAncestor(grid1).TransformBounds(rect2);

        matrix = zoomMatrixTransform.Matrix;
        Vector v = start - e.GetPosition(grid1);

        matrix.OffsetX = origin.X - v.X;
        matrix.OffsetY = origin.Y - v.Y;

        zoomMatrixTransform.Matrix = matrix;

        image1.RenderTransformOrigin = new Point(0.5, 0.5);
        image1.LayoutTransform = zoomMatrixTransform;
    }

Я прикрепил панорамированное изображение и хочуограничить выделенную красным цветом область. Также прилагается ожидаемый результат.

...