示例#1
0
        static Point GetClientPoint(Point position)
        {
            Point        rawPoint        = mouseGrab.ToClientPoint(position);
            const double borderThickness = 1.0;

            return(new Point(animationAdjustX + rawPoint.X - borderThickness + 1, animationAdjustY + rawPoint.Y - borderThickness + 1));
        }
示例#2
0
        public void AnnotateScreenshot(DrawingContext context, ScreenGrab screenGrab)
        {
            Point clientPt = screenGrab.ToClientPoint(position);

            Color           mouseAnnotationColor1 = Color.FromArgb(0xA0, 0xFF, 0x00, 0x00);
            SolidColorBrush annotationBrush       = CachedBrushes.Get(mouseAnnotationColor1);

            context.DrawEllipse(annotationBrush, null, clientPt, 2.5, 2.5);
            context.DrawEllipse(Brushes.Black, null, clientPt, 0.7, 0.7);

            Color           mouseAnnotationColor2 = Color.FromArgb(0x50, 0xFF, 0x00, 0x00);
            SolidColorBrush annotationBrush2      = CachedBrushes.Get(mouseAnnotationColor2);

            context.DrawEllipse(null, new Pen(annotationBrush2, 2), clientPt, 9, 9);

            Color           mouseAnnotationColor3 = Color.FromArgb(0x30, 0xFF, 0x00, 0x00);
            SolidColorBrush annotationBrush3      = CachedBrushes.Get(mouseAnnotationColor3);

            context.DrawEllipse(null, new Pen(annotationBrush3, 1), clientPt, 16, 16);
        }
示例#3
0
        public void AnnotateScreenshot(DrawingContext context, ScreenGrab screenGrab)
        {
            Point start = screenGrab.ToClientPoint(StartPosition);
            Point end   = screenGrab.ToClientPoint(EndPosition);

            bool mouseIsDownAtEnd = false;

            if (midPoints.Count > 1)
            {
                Point    thisPoint = start;
                DateTime thisTime  = Start;
                foreach (TimeMousePoint midPoint in midPoints)
                {
                    DateTime nextTime          = midPoint.Time;
                    TimeSpan timeBetweenPoints = nextTime - thisTime;
                    double   time      = timeBetweenPoints.TotalMilliseconds;
                    Point    nextPoint = screenGrab.ToClientPoint(midPoint.Point);
                    double   distance  = GetDistanceBetweenPoints(thisPoint, nextPoint);
                    if (thisPoint != nextPoint)
                    {
                        DrawLine(context, thisPoint, nextPoint, distance, time, midPoint.MouseIsDown);
                    }

                    if (mouseIsDownAtEnd != midPoint.MouseIsDown)
                    {
                        mouseIsDownAtEnd = midPoint.MouseIsDown;
                        double radius;
                        double thickness;
                        if (mouseIsDownAtEnd)
                        {
                            radius    = 6;
                            thickness = 2;
                        }
                        else
                        {
                            radius    = 6;
                            thickness = 1;
                        }
                        Color           annotationColor = GetMouseAnnotationColor(mouseIsDownAtEnd);
                        SolidColorBrush mouseDownBrush  = CachedBrushes.Get(annotationColor);
                        Pen             arrowPen        = new Pen(mouseDownBrush, thickness);
                        context.DrawEllipse(null, arrowPen, nextPoint, radius, radius);
                    }

                    thisPoint = nextPoint;
                    thisTime  = nextTime;
                }
            }
            else if (start != end)
            {
                TimeSpan timeBetweenPoints = Duration;
                double   time     = timeBetweenPoints.TotalMilliseconds;
                double   distance = GetDistanceBetweenPoints(startPosition, endPosition);
                DrawLine(context, start, end, distance, time, mouseStartsDown);
                mouseIsDownAtEnd = mouseStartsDown;
            }

            Color           lastEllipseColor = GetMouseAnnotationColor(mouseIsDownAtEnd);
            SolidColorBrush arrowBrush       = CachedBrushes.Get(lastEllipseColor);

            context.DrawEllipse(arrowBrush, null, end, 4, 4);
        }