nature_net.user_controls.contribution_view.image_canvas_ManipulationDelta C# (CSharp) Метод

image_canvas_ManipulationDelta() публичный Метод

public image_canvas_ManipulationDelta ( object sender, System.Windows.Input.ManipulationDeltaEventArgs e ) : void
sender object
e System.Windows.Input.ManipulationDeltaEventArgs
Результат void
        void image_canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
        {
            FrameworkElement element = (FrameworkElement)e.Source;
            if (element == null) return;
            var deltaManipulation = e.DeltaManipulation;
            var matrix = ((MatrixTransform)element.RenderTransform).Matrix;
            Point center = new Point(element.ActualWidth / 2, element.ActualHeight / 2);
            center = matrix.Transform(center);
            //double scale_x_old = matrix.M11;
            //double scale_y_old = matrix.M22;
            if (!item.is_audio)
                //if (the_image.ActualHeight < 300 && the_image.ActualHeight > 100 && the_image.ActualWidth < 300 && the_image.ActualWidth > 100)
                //    if (deltaManipulation.Scale.X >= 0.5 && deltaManipulation.Scale.X <= 2.5
                //        && deltaManipulation.Scale.Y >= 0.5 && deltaManipulation.Scale.Y <= 2.5)
                        matrix.ScaleAt(deltaManipulation.Scale.X, deltaManipulation.Scale.Y, center.X, center.Y);
            //if (matrix.M11 < 0.5) matrix.M11 = 0.5; if (matrix.M11 > 2.0) matrix.M11 = 2.0;
            //if (matrix.M22 < 0.5) matrix.M22 = 0.5; if (matrix.M22 > 2.0) matrix.M22 = 2.0;
            if (!item.is_audio)
                matrix.RotateAt(e.DeltaManipulation.Rotation, center.X, center.Y);
            //matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y);

            //matrix.OffsetX = ((MatrixTransform)image_canvas.RenderTransform).Matrix.OffsetX + (image_canvas.ActualWidth / 2) - (the_image.ActualWidth / 2);
            //matrix.OffsetY = ((MatrixTransform)image_canvas.RenderTransform).Matrix.OffsetY + (image_canvas.ActualHeight / 2) - (the_image.ActualHeight / 2);

            element.RenderTransform = new MatrixTransform(matrix);

            e.Handled = true;
        }