Example #1
0
        public static void DrawBorder(Graphics graphics, Rectangle rect, Color color)
        {
            var BrightHighlight = ((ColorF)color * 234 / 220.0).FullAlpha;
            var DarkHighlight = ((ColorF)color * 192 / 220.0).FullAlpha;
            var BrightShadow = ((ColorF)color * 212 / 220.0).FullAlpha;
            var DarkShadow = ((ColorF)color * 130 / 220.0).FullAlpha;
            var BrightFace = ((ColorF)color * 248 / 220.0).FullAlpha;
            var DarkFace = ((ColorF)color * 178 / 220.0).FullAlpha;
            var bgBrush = new SolidBrush(((ColorF)BrightFace + (ColorF)DarkFace) / 2);
            float angle = (float)(Math.Atan2(rect.Width, rect.Height) * 180 / Math.PI);
            var hlPen = new Pen(new LinearGradientBrush(rect, BrightHighlight, DarkHighlight, angle));
            var shPen = new Pen(new LinearGradientBrush(rect, BrightShadow, DarkShadow, angle));
            var fcPen = new Pen(new LinearGradientBrush(rect, BrightFace, DarkFace, angle));

            graphics.FillRectangle(bgBrush, rect);

            graphics.DrawLine(hlPen, new Point(1, 0), new Point(rect.Width - 2, 0));
            graphics.DrawLine(hlPen, new Point(0, 1), new Point(0, rect.Height - 2));
            graphics.DrawLine(hlPen, new Point(rect.Width - 3, 3), new Point(rect.Width - 3, rect.Height - 3));
            graphics.DrawLine(hlPen, new Point(3, rect.Height - 3), new Point(rect.Width - 3, rect.Height - 3));

            graphics.DrawLine(shPen, new Point(3, 2), new Point(rect.Width - 4, 2));
            graphics.DrawLine(shPen, new Point(2, 3), new Point(2, rect.Height - 4));
            graphics.DrawLine(shPen, new Point(rect.Width - 1, 1), new Point(rect.Width - 1, rect.Height - 2));
            graphics.DrawLine(shPen, new Point(1, rect.Height - 1), new Point(rect.Width - 1, rect.Height - 1));

            graphics.DrawRectangle(fcPen, rect.Deflated(1, 1, 2, 2));
        }
Example #2
0
 public static void DrawWallpaper(Graphics graphics, Rectangle rect, Color light, Color shadow)
 {
     float angle = (float)(Math.Atan2(rect.Width, rect.Height) * 180 / Math.PI);
     var screenRect = rect.Deflated(3, 3);
     var wpBrush = new LinearGradientBrush(rect, light, shadow, angle);
     var shadowColorA = ColorF.FromHSLA(shadow.GetHue() / 360, shadow.GetSaturation() * 2, shadow.GetBrightness() / 4, 0.5);
     var shadowColorB = ColorF.FromHSLA(light.GetHue() / 360, light.GetSaturation() * 2, light.GetBrightness() / 4, 0.5);
     var shadowPen = new Pen(new LinearGradientBrush(rect, shadowColorA, shadowColorB, angle));
     var shadowColorC = (shadowColorA + shadowColorB) / 2;
     shadowColorC.A /= 2;
     var innerShadowPen = new Pen(shadowColorC);
     graphics.FillRectangle(wpBrush, screenRect);
     graphics.DrawRectangle(innerShadowPen, 4, 3, rect.Width - 9, rect.Height - 6);
     graphics.DrawRectangle(shadowPen, screenRect.Deflated(0, 0, 1, 1));
 }