Artemis.Utilities.ColorHelpers.RandomizeBrush C# (CSharp) Method

RandomizeBrush() public static method

public static RandomizeBrush ( System.Windows.Media.Brush brush ) : System.Windows.Media.Brush
brush System.Windows.Media.Brush
return System.Windows.Media.Brush
        public static Brush RandomizeBrush(Brush brush)
        {
            if (brush is SolidColorBrush)
            {
                return new SolidColorBrush(GetRandomRainbowMediaColor());
            }

            if (brush is LinearGradientBrush)
            {
                var randomBrush = (LinearGradientBrush) brush.CloneCurrentValue();
                var rand = GetRandomRainbowMediaColor();
                foreach (var stop in randomBrush.GradientStops)
                    stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B);

                return randomBrush;
            }

            if (brush is RadialGradientBrush)
            {
                var randomBrush = (RadialGradientBrush) brush.CloneCurrentValue();
                var rand = GetRandomRainbowMediaColor();
                foreach (var stop in randomBrush.GradientStops)
                    stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B);

                return randomBrush;
            }

            return brush;
        }
    }