public LinearGradientBrush GetLinearGradientBrush() { DirectLinearGradient direct = directLineGradient[rand.Next(0, 3)]; LinearGradientBrush myBrush = new LinearGradientBrush { StartPoint = GetStartPoint(direct), EndPoint = GetEndPoint(direct) }; int CountStops = rand.Next(2, 5); double offSet = 0; double stepSet = 1.0 / CountStops; for (int i = 1; i <= CountStops; i++) { if (i == CountStops) { offSet = 1; } else if (i == 1) { offSet = 0; } else { offSet = stepSet * i; } myBrush.GradientStops.Add(new GradientStop(GetColor(), offSet)); } return(myBrush); }
private Point GetEndPoint(DirectLinearGradient direct) { switch (direct) { case DirectLinearGradient.LeftRight: return(new Point(1, 0.5)); case DirectLinearGradient.TopBottom: return(new Point(0.5, 1)); case DirectLinearGradient.DiagonalLeftRight: return(new Point(1, 1)); case DirectLinearGradient.DiagonalRightLeft: return(new Point(0, 1)); default: return(new Point(1, 1)); } }