public XmlTreeNode(RadTreeNode node) { this.Visible = node.Visible; this.Expanded = node.Expanded; this.Name = node.Name; this.ImageKey = node.ImageKey; this.ImageIndex = node.ImageIndex; this.ItemHeight = node.ItemHeight; this.Text = node.Text; this.Tag = node.Tag; this.CheckState = node.CheckState; this.CheckType = node.CheckType; this.ForeColor = node.ForeColor; this.BackColor = node.BackColor; this.BackColor2 = node.BackColor2; this.BackColor3 = node.BackColor3; this.BackColor4 = node.BackColor4; this.BorderColor = node.BorderColor; this.GradientAngle = node.GradientAngle; this.GradientPercentage = node.GradientPercentage; this.GradientPercentage2 = node.GradientPercentage2; this.GradientStyle = node.GradientStyle; this.NumberOfColors = node.NumberOfColors; if (node.HasStyle && node.Font != null) { this.Font = node.Font; } this.TextAlignment = node.TextAlignment; foreach (RadTreeNode node1 in (Collection <RadTreeNode>)node.Nodes) { this.Nodes.Add(new XmlTreeNode(node1)); } }
public static Color ColorMixer( GradientStyles gradientSyle, int numberOfColors, float gradientPercent, float gradientPercent2, params Color[] colors) { if (numberOfColors < 1 || numberOfColors > 4) { throw new ArgumentException("Invalid number of colors. Should be between 1 and 4"); } Color color; if (gradientSyle != GradientStyles.Solid) { switch (numberOfColors) { case 1: break; case 2: color = GridExportUtils.ColorMixer(colors[0], colors[1]); goto label_8; case 3: float num1 = 0.0f; float num2 = 0.0f; float num3 = 0.0f; float num4 = num1 + (float)((double)colors[0].R * (double)gradientPercent / 2.0); float num5 = num2 + (float)((double)colors[0].G * (double)gradientPercent / 2.0); float num6 = num3 + (float)((double)colors[0].B * (double)gradientPercent / 2.0); float num7 = num4 + (float)((int)colors[1].R / 2); float num8 = num5 + (float)((int)colors[1].G / 2); float num9 = num6 + (float)((int)colors[1].B / 2); color = Color.FromArgb((int)(num7 + (float)colors[2].R * (float)((1.0 - (double)gradientPercent) / 2.0)), (int)(num8 + (float)colors[2].G * (float)((1.0 - (double)gradientPercent) / 2.0)), (int)(num9 + (float)colors[2].B * (float)((1.0 - (double)gradientPercent) / 2.0))); goto label_8; default: float num10 = 0.0f; float num11 = 0.0f; float num12 = 0.0f; float num13 = num10 + (float)((double)colors[0].R * (double)gradientPercent / 2.0); float num14 = num11 + (float)((double)colors[0].G * (double)gradientPercent / 2.0); float num15 = num12 + (float)((double)colors[0].B * (double)gradientPercent / 2.0); float num16 = num13 + (float)colors[1].R * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0); float num17 = num14 + (float)colors[1].G * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0); float num18 = num15 + (float)colors[1].B * (float)((double)gradientPercent / 2.0 + ((double)gradientPercent2 - (double)gradientPercent) / 2.0); float num19 = num16 + (float)colors[2].R * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0); float num20 = num17 + (float)colors[2].G * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0); float num21 = num18 + (float)colors[2].B * (float)(((double)gradientPercent2 - (double)gradientPercent) / 2.0 + (1.0 - (double)gradientPercent2) / 2.0); color = Color.FromArgb((int)(num19 + (float)colors[3].R * (float)((1.0 - (double)gradientPercent2) / 2.0)), (int)(num20 + (float)colors[3].G * (float)((1.0 - (double)gradientPercent2) / 2.0)), (int)(num21 + (float)colors[3].B * (float)((1.0 - (double)gradientPercent2) / 2.0))); goto label_8; } } color = colors[0]; label_8: return(color); }
private GradientStop[] GetColorStops(IFillElement element) { float gradientPercentage = element.GradientPercentage; float gradientPercentage2 = element.GradientPercentage2; GradientStyles gradientStyle = element.GradientStyle; Color color1 = this.GetColor(element.BackColor); Color color2 = this.GetColor(element.BackColor2); Color color3 = this.GetColor(element.BackColor3); Color color4 = this.GetColor(element.BackColor4); int numberOfColors = element.NumberOfColors; int colorCount = Math.Min(Math.Max(numberOfColors, 1), 4); GradientStop[] colorStops = new GradientStop[colorCount]; for (int index = 0; index < colorCount; ++index) { colorStops[index] = new GradientStop(); } if (gradientStyle == GradientStyles.Gel) { gradientPercentage = 0.0f; gradientPercentage2 = 1f; } if (numberOfColors > 0) { colorStops[0].Color = color1; colorStops[0].Position = 0.0f; if (numberOfColors > 1) { colorStops[1].Color = color2; colorStops[colorCount - 1].Position = 1f; if (numberOfColors > 2) { colorStops[2].Color = color3; colorStops[1].Position = gradientPercentage; if (numberOfColors > 3) { colorStops[3].Color = this.GetColor(color4); colorStops[2].Position = gradientPercentage2; } } } } switch (gradientStyle) { case GradientStyles.Radial: colorStops = this.GetFillRadialGradientStops(colorStops, colorCount, gradientPercentage, gradientPercentage2); break; case GradientStyles.Gel: colorStops = this.GetFillGelGradientStops(colorStops, colorCount); break; } return(colorStops); }
public void FillPath(IFillElement element, Path path) { GradientStyles gradientStyle = element.GradientStyle; int numberOfColors = element.NumberOfColors; float gradientPercentage = element.GradientPercentage; float gradientPercentage2 = element.GradientPercentage2; if (gradientStyle == GradientStyles.Gel || gradientStyle == GradientStyles.Radial || gradientStyle == GradientStyles.Linear) { GradientStop[] colorStops = this.GetColorStops(element); switch (gradientStyle) { case GradientStyles.Linear: case GradientStyles.Radial: Color color1 = this.GetColor(element.BackColor); Color color2 = this.GetColor(element.BackColor2); if (numberOfColors < 2 || numberOfColors == 2 && color1 == color2) { this.FillSolid(path, color1); break; } if (gradientStyle == GradientStyles.Linear) { this.FillLinear(path, colorStops, element.GradientAngle); break; } this.FillRadial(path, colorStops); break; case GradientStyles.Gel: this.FillGel(path, colorStops, gradientPercentage, gradientPercentage2); break; } } else { Color color1 = this.GetColor(element.BackColor); Color color2 = this.GetColor(element.BackColor2); Color color3 = this.GetColor(element.BackColor3); Color color4 = this.GetColor(element.BackColor4); switch (gradientStyle) { case GradientStyles.Solid: this.FillSolid(path, color1); break; case GradientStyles.Glass: this.FillGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2); break; case GradientStyles.OfficeGlass: case GradientStyles.OfficeGlassRect: this.FillOfficeGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2, gradientStyle == GradientStyles.OfficeGlass); break; case GradientStyles.Vista: this.FillVista(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2); break; } } }