Exemplo n.º 1
0
        /// <summary>
        /// </summary>
        /// <exception cref="ArgumentNullException"><para><paramref name="paintParams"/> is <see langword="null"/>.</para></exception>
        public void DrawShadow(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics  g      = paintParams.Graphics;
            Rectangle bounds = paintParams.Bounds;

            int     alpha          = 0;
            Color   baseColor      = Color.Black;
            int     alphaStep      = 5;
            Padding deflatePadding = new Padding(1);

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                NuGenControlPaint.SetGraphicsVeryHighQuality(g);

                using (Pen pen = new Pen(Color.FromArgb(alpha, baseColor)))
                {
                    for (int i = 0; i <= _shadowStepCount; i++)
                    {
                        NuGenControlPaint.DrawRoundRectangle(g, pen, bounds, _shadowRadius);
                        pen.Color = Color.FromArgb(alpha += alphaStep, baseColor);
                        bounds    = NuGenControlPaint.DeflateRectangle(bounds, deflatePadding);

                        if (i == 1)
                        {
                            alphaStep = 10;
                        }
                    }
                }
            }
        }