/// <summary> /// 使用渐变色渲染矩形内部区域 /// </summary> /// <param name="graphics">GDI+ 绘图图面</param> /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param> /// <param name="gradientColor">渐变颜色</param> public static void FillRectangle(Graphics graphics, Rectangle rect, AuroraGradientColor gradientColor) { if (rect.Width <= 0 || rect.Height <= 0 || graphics == null) { return; } using (LinearGradientBrush brush = new LinearGradientBrush(rect, gradientColor.FromColor, gradientColor.ToColor, gradientColor.GradientMode)) { brush.Blend.Factors = gradientColor.Factors; brush.Blend.Positions = gradientColor.Positions; graphics.FillRectangle(brush, rect); } }
/// <summary> /// 使用渐变色渲染GraphicsPath内部区域 /// </summary> /// <param name="graphics">GDI+ 绘图图面</param> /// <param name="graphicsPath">表示一系列相互连接的直线和曲线</param> /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param> /// <param name="gradientColor">渐变颜色</param> public static void FillPath(Graphics graphics, GraphicsPath graphicsPath, Rectangle rect, AuroraGradientColor gradientColor) { if (graphicsPath == null || graphics == null || rect.Width <= 0 || rect.Height <= 0) { return; } using (LinearGradientBrush brush = new LinearGradientBrush(rect, gradientColor.FromColor, gradientColor.ToColor, gradientColor.GradientMode)) { brush.Blend.Factors = gradientColor.Factors ?? (new float[] { }); brush.Blend.Positions = gradientColor.Positions ?? (new float[] { }); graphics.FillPath(brush, graphicsPath); } }
/// <summary> /// 使用渐变色渲染GraphicsPath内部区域 /// </summary> /// <param name="graphics">GDI+ 绘图图面</param> /// <param name="graphicsPath">表示一系列相互连接的直线和曲线</param> /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param> /// <param name="fColor">起始颜色</param> /// <param name="tColor">结束颜色</param> /// <param name="blend">色彩混合渲染方案</param> /// <param name="gradientMode">线性渐变模式</param> public static void FillPath(Graphics graphics, GraphicsPath graphicsPath, Rectangle rect, Color fColor, Color tColor, Blend blend, LinearGradientMode gradientMode) { AuroraGradientColor gradientColor = new AuroraGradientColor(fColor, tColor, gradientMode, blend); FillPath(graphics, graphicsPath, rect, gradientColor); }