Example #1
0
        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);
        }
Example #2
0
        public static Color GetBackColor(LightVisualElement element)
        {
            RadElement         radElement         = (RadElement)element;
            Color              color              = Color.Empty;
            LightVisualElement lightVisualElement = (LightVisualElement)null;

            if (element.BackColor.A < (byte)200 || !element.DrawFill)
            {
                while (radElement.Parent != null)
                {
                    radElement         = radElement.Parent;
                    lightVisualElement = radElement as LightVisualElement;
                    if (lightVisualElement != null && (lightVisualElement.BackColor.A > (byte)200 && lightVisualElement.DrawFill))
                    {
                        break;
                    }
                }
            }
            else
            {
                lightVisualElement = radElement as LightVisualElement;
            }
            if (lightVisualElement != null)
            {
                color = GridExportUtils.ColorMixer(lightVisualElement.GradientStyle, lightVisualElement.NumberOfColors, lightVisualElement.GradientPercentage, lightVisualElement.GradientPercentage2, lightVisualElement.BackColor, lightVisualElement.BackColor2, lightVisualElement.BackColor3, lightVisualElement.BackColor4);
            }
            else
            {
                RootRadElement rootRadElement = radElement as RootRadElement;
                if (rootRadElement != null)
                {
                    color = rootRadElement.BackColor;
                }
            }
            return(color);
        }