public void UpdateFill(CoreColor min, CoreColor max) { Background = new LinearGradientBrush { StartPoint = new Point(0, 0), EndPoint = new Point(0, 1), GradientStops = new GradientStopCollection { new GradientStop { Color = new Color { A = min.A, R = min.R, G = min.G, B = min.B }, Offset = 0 }, new GradientStop { Color = new Color { A = max.A, R = max.R, G = max.G, B = max.B }, Offset = 1 } } }; }
private static CoreColor ColorInterpolation(IList <CoreGradientStop> gradients, double weight) { CoreColor from = new CoreColor(0, 0, 0, 0), to = new CoreColor(0, 0, 0, 0); double fromOffset = 0, toOffset = 0; for (var i = 0; i < gradients.Count; i++) { // ReSharper disable once InvertIf if (gradients[i].Offset <= weight && gradients[i + 1].Offset >= weight) { from = gradients[i].Color; to = gradients[i + 1].Color; fromOffset = gradients[i].Offset; toOffset = gradients[i + 1].Offset; break; } } return(new CoreColor( InterpolateColorComponent(from.A, to.A, fromOffset, toOffset, weight), InterpolateColorComponent(from.R, from.R, fromOffset, toOffset, weight), InterpolateColorComponent(from.G, to.G, fromOffset, toOffset, weight), InterpolateColorComponent(from.B, to.B, fromOffset, toOffset, weight))); }
public static Color GetColor(CoreColor color) { var uiColor = Color.White; if (color != null) { uiColor = new Color((byte)color.Red, (byte)color.Green, (byte)color.Blue, (byte)color.Alpha); } return(uiColor); }