Esempio n. 1
0
 private void AddAdornerToWatermarkLabel(TextWatermark watermark)
 {
     if (watermark != null)
     {
         AdornerLayer          layer = AdornerLayer.GetAdornerLayer(watermark.UiLabelOnImageInCanvas);
         WatermarkLabelAdorner a     = new WatermarkLabelAdorner(watermark.UiLabelOnImageInCanvas);
         a.OnDrag += TextWatermarkDragHandler;
         layer.Add(a);
     }
 }
Esempio n. 2
0
        private void TextWatermarkDragHandler(WatermarkLabelAdorner sender, DragOperations operation, double diffX, double diffY)
        {
            Label l = sender.AdornedElement as Label;

            if (l == null)
            {
                return;
            }
            int i = textWatermarks.GetIndexByUiLabel(l);

            if (i < 0)
            {
                return;
            }
            TextWatermark t = textWatermarks[i];

            if (operation == DragOperations.Move)
            {
                int diffXinPercent = Convert.ToInt16((diffX / imagePreview.Width) * 100);
                int diffYinPercent = Convert.ToInt16((diffY / imagePreview.Height) * 100);
                t.xLocationInPercent += diffXinPercent;
                t.yLocationInPercent += diffYinPercent;
            }
            else
            if (operation == DragOperations.Rotate)
            {
                double ox = sender.ActualWidth * Math.Cos((t.angle) * Math.PI / 180);
                double oy = sender.ActualWidth * Math.Sin((t.angle) * Math.PI / 180);
                double nx = ox + diffX;
                if (nx < 0)
                {
                    if (diffY < 0)
                    {
                        t.angle = -90;
                    }
                    else
                    {
                        t.angle = 90;
                    }
                }
                else
                {
                    double ny = oy + diffY;
                    double na = Math.Atan(ny / nx) * (180.0 / Math.PI);
                    t.angle = Convert.ToInt16(na);
                }
            }
        }