public void AddStop() { var stop = new GradientStop { Color = ColorUtils.GetRandom(), Offset = Offset.Prop(1) }; var lastStop = Stops.LastOrDefault(); if (lastStop != null && lastStop.RenderOffset > 0.8) { foreach (var x in Stops) { x.Offset = Offset.Prop(x.RenderOffset * 0.8); } } _source.Stops.Add(stop); Stops.Add(new GradientStopClone(stop)); }