예제 #1
0
        public UGLinearGradientBrush(IUGContext context, Vector2 startPoint, Vector2 endPoint, IEnumerable <UGGradientStop> gradientStops, UGEdgeBehavior edgeBehavior)
        {
            var count = gradientStops.Count();

            if (count < 2)
            {
                throw new ArgumentException(nameof(gradientStops));
            }

            var device     = ((UGContext)context).Device;
            var winrtStops = gradientStops.ToWinRTGradientStops();
            var native     = new CanvasLinearGradientBrush(device, winrtStops, edgeBehavior.ToWinRTEdgeBehavior(), CanvasAlphaMode.Premultiplied);

            native.StartPoint = startPoint;
            native.EndPoint   = endPoint;
            _native           = native;
        }
예제 #2
0
        public UGRadialGradientBrush(IUGContext context, Vector2 center, float radius, IEnumerable <UGGradientStop> gradientStops, UGEdgeBehavior edgeBehavior)
        {
            var count = gradientStops.Count();

            if (count < 2)
            {
                throw new ArgumentException(nameof(gradientStops));
            }

            var device     = ((UGContext)context).Device;
            var winrtStops = gradientStops.ToWinRTGradientStops();
            var native     = new CanvasRadialGradientBrush(device, winrtStops, edgeBehavior.ToWinRTEdgeBehavior(), CanvasAlphaMode.Premultiplied);

            native.Center  = center;
            native.RadiusX = radius;
            native.RadiusY = radius;
            _native        = native;
        }