Пример #1
0
        public static void ResizeElement(this UIElement element, double handleTop, double handleLeft)
        {
            if (element.GetType() != typeof(ResizeHandle))
            {
                return;
            }

            ResizeHandle handle = (ResizeHandle)element;

            UIElement canvasElement = canvaselements[handle.ElemntId];

            SetBounds(canvasElement);

            if (canvasElement.GetType().BaseType == typeof(ReportLineBase))
            {
                minSizeParameter = 1;

                switch (handle.ResizeHandleType)
                {
                case ResizeHandlesEnum.LeftBottom:

                    canvasElement.SetPropertyValue("StrokeThickness", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Height", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Width", CalculateLeftWidth(handleLeft));

                    canvasElement.SetPropertyValue("LineLength", DistanceConverter.ConvertPixelToCm(CalculateLeftWidth(handleLeft)));

                    Canvas.SetLeft(canvasElement, (handleLeft + HandleSize));

                    break;

                case ResizeHandlesEnum.LetfTop:

                    double leftTophicknes = (bottom - handleTop) - HandleSize;

                    if (leftTophicknes < 1)
                    {
                        leftTophicknes = 1;
                    }

                    canvasElement.SetPropertyValue("StrokeThickness", leftTophicknes);

                    Canvas.SetTop(canvasElement, (handleTop + HandleSize));

                    canvasElement.SetPropertyValue("Height", leftTophicknes);

                    canvasElement.SetPropertyValue("Width", CalculateLeftWidth(handleLeft));

                    canvasElement.SetPropertyValue("LineLength", DistanceConverter.ConvertPixelToCm(CalculateLeftWidth(handleLeft)));

                    Canvas.SetLeft(canvasElement, (handleLeft + HandleSize));

                    break;

                case ResizeHandlesEnum.RightBottom:

                    canvasElement.SetPropertyValue("StrokeThickness", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Height", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Width", CalculateRightWidth(handleLeft));

                    canvasElement.SetPropertyValue("LineLength", DistanceConverter.ConvertPixelToCm(CalculateRightWidth(handleLeft)));

                    break;

                case ResizeHandlesEnum.RightTop:

                    double rightTopThicknes = (bottom - handleTop) - HandleSize;

                    if (rightTopThicknes < 1)
                    {
                        rightTopThicknes = 1;
                    }

                    canvasElement.SetPropertyValue("StrokeThickness", rightTopThicknes);

                    Canvas.SetTop(canvasElement, (handleTop + HandleSize));

                    canvasElement.SetPropertyValue("Height", rightTopThicknes);

                    canvasElement.SetPropertyValue("Width", CalculateRightWidth(handleLeft));

                    canvasElement.SetPropertyValue("LineLength", DistanceConverter.ConvertPixelToCm(CalculateRightWidth(handleLeft)));

                    break;
                }
            }
            else
            {
                minSizeParameter = 10;

                switch (handle.ResizeHandleType)
                {
                case ResizeHandlesEnum.LeftBottom:

                    canvasElement.SetPropertyValue("Height", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Width", CalculateLeftWidth(handleLeft));

                    Canvas.SetLeft(canvasElement, (handleLeft + HandleSize));

                    break;

                case ResizeHandlesEnum.LetfTop:

                    canvasElement.SetPropertyValue("Height", CalculateTopHeight(handleTop));

                    Canvas.SetTop(canvasElement, (handleTop + HandleSize));

                    canvasElement.SetPropertyValue("Width", CalculateLeftWidth(handleLeft));

                    Canvas.SetLeft(canvasElement, (handleLeft + HandleSize));

                    break;

                case ResizeHandlesEnum.RightBottom:

                    canvasElement.SetPropertyValue("Height", CalculateBottomHeight(handleTop));

                    canvasElement.SetPropertyValue("Width", CalculateRightWidth(handleLeft));

                    break;

                case ResizeHandlesEnum.RightTop:

                    canvasElement.SetPropertyValue("Height", CalculateTopHeight(handleTop));

                    Canvas.SetTop(canvasElement, (handleTop + HandleSize));

                    canvasElement.SetPropertyValue("Width", CalculateRightWidth(handleLeft));

                    break;
                }
            }

            MoveHandles(canvasElement, handle.ResizeHandleType);
        }