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)); }
public LinearGradientShaderFactory(LinearGradientData data) { _data = data; }