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;
}
}