Пример #1
0
        void SetLinearGradientPaint(APaint platformPaint, LinearGradientPaint linearGradientPaint)
        {
            var p1 = linearGradientPaint.StartPoint;
            var x1 = (float)p1.X;
            var y1 = (float)p1.Y;
            var p2 = linearGradientPaint.EndPoint;
            var x2 = (float)p2.X;
            var y2 = (float)p2.Y;

            var data   = GetGradientPaintData(linearGradientPaint);
            var shader = new LinearGradientData(data.Colors, data.Offsets, x1, y1, x2, y2);

            if (_width == 0 && _height == 0)
            {
                return;
            }

            if (shader.Colors == null || shader.Colors.Length < 2)
            {
                return;
            }

            var linearGradientShader = new LinearGradient(
                _width * shader.X1,
                _height * shader.Y1,
                _width * shader.X2,
                _height * shader.Y2,
                shader.Colors,
                shader.Offsets,
                Shader.TileMode.Clamp !);

            platformPaint.SetShader(linearGradientShader);
        }
        public void SetPaint(LinearGradientPaint linearGradientPaint)
        {
            var p1 = linearGradientPaint.StartPoint;
            var x1 = (float)p1.X;
            var y1 = (float)p1.Y;

            var p2 = linearGradientPaint.EndPoint;
            var x2 = (float)p2.X;
            var y2 = (float)p2.Y;

            var data   = GetGradientPaintData(linearGradientPaint);
            var shader = new LinearGradientData(data.Colors, data.Offsets, x1, y1, x2, y2);

            _backgroundColor = null;
            SetShaderFactory(new LinearGradientShaderFactory(shader));
        }
Пример #3
0
 public LinearGradientShaderFactory(LinearGradientData data)
 {
     _data = data;
 }