コード例 #1
0
        private static GradientRepeater CreateGradientRepeater(GradientRepeatType repeatType)
        {
            switch (repeatType)
            {
            case GradientRepeatType.NoRepeat:
                return(new GradientRepeaters.NoRepeat());

            case GradientRepeatType.RepeatWrapped:
                return(new GradientRepeaters.RepeatWrapped());

            case GradientRepeatType.RepeatReflected:
                return(new GradientRepeaters.RepeatReflected());
            }
            throw ExceptionUtil.InvalidEnumArgumentException <GradientRepeatType>(repeatType, "repeatType");
        }
コード例 #2
0
        private static GradientShape CreateGradientShape(GradientType gradientType, GradientRepeatType repeatType, PointDouble startPoint, PointDouble endPoint)
        {
            if (startPoint == endPoint)
            {
                return(null);
            }
            switch (gradientType)
            {
            case GradientType.LinearClamped:
                return(new GradientShapes.LinearStraight(startPoint, endPoint));

            case GradientType.LinearReflected:
                return(new GradientShapes.LinearReflected(startPoint, endPoint));

            case GradientType.LinearDiamond:
                return(new GradientShapes.LinearDiamond(startPoint, endPoint));

            case GradientType.Radial:
                return(new GradientShapes.Radial(startPoint, endPoint));

            case GradientType.Conical:
                if (repeatType != GradientRepeatType.NoRepeat)
                {
                    return(new GradientShapes.Conical(startPoint, endPoint));
                }
                return(new GradientShapes.ConicalNoRepeat(startPoint, endPoint));

            case GradientType.Spiral:
                if (repeatType != GradientRepeatType.RepeatReflected)
                {
                    return(new GradientShapes.Spiral(startPoint, endPoint));
                }
                return(new GradientShapes.SpiralReflected(startPoint, endPoint));

            case GradientType.SpiralCounterClockwise:
                if (repeatType != GradientRepeatType.RepeatReflected)
                {
                    return(new GradientShapes.SpiralCCW(startPoint, endPoint));
                }
                return(new GradientShapes.SpiralReflectedCCW(startPoint, endPoint));
            }
            throw ExceptionUtil.InvalidEnumArgumentException <GradientType>(gradientType, "gradientType");
        }
コード例 #3
0
        private bool IsAntialiasingRequiredForShape(GradientType gradientType, GradientRepeatType gradientRepeatType, PointDouble startPoint, PointDouble endPoint)
        {
            if (gradientRepeatType == GradientRepeatType.RepeatReflected)
            {
                VectorDouble num2 = (VectorDouble)(endPoint - startPoint);
                return(num2.Length < 8.0);
            }
            switch (gradientType)
            {
            case GradientType.LinearClamped:
            case GradientType.LinearReflected:
            case GradientType.LinearDiamond:
            case GradientType.Radial:
                return(gradientRepeatType == GradientRepeatType.RepeatWrapped);

            case GradientType.Conical:
            case GradientType.Spiral:
            case GradientType.SpiralCounterClockwise:
                return(true);
            }
            throw ExceptionUtil.InvalidEnumArgumentException <GradientType>(gradientType, "gradientType");
        }