public static void ScrollButtonHorisontalBar(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
        {
            var drawRect = Params["Rect", rect.Rect].As <Rectangle>();

            if (drawRect.Width < 16)
            {
                return;
            }
            var center = new Point(drawRect.Left + drawRect.Width / 2, drawRect.Top + drawRect.Height / 2);

            int sz            = (drawRect.Width < 36) ? (drawRect.Width - 16) / 2 : 10;
            var arrowUpPoints = new Point[]
            {
                new Point(center.X - sz, center.Y + 2),
                new Point(center.X - sz - 2, center.Y),
                new Point(center.X - sz, center.Y - 3),
                new Point(center.X + sz, center.Y - 2),
                new Point(center.X + sz + 2, center.Y),
                new Point(center.X + sz, center.Y + 2)
            };

            graf.FillPolygon(new LinearGradientBrush(arrowUpPoints[2], arrowUpPoints[0],
                                                     Params["Color", SystemColors.Control].AsColor().DarkColor(20),
                                                     Params["Color", SystemColors.Control].AsColor().BrightColor(20)),
                             arrowUpPoints);
        }
        public static void ButtonBorder(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
        {
            var drawRect = rect.Rect;

            RectSides darkSides, brightSides;

            if (Params["Down"].AsBoolean())
            {
                brightSides = new RectSides()
                {
                    right = true, bottom = true
                };
                darkSides = new RectSides()
                {
                    left = true, top = true
                };
            }
            else
            {
                darkSides = new RectSides()
                {
                    right = true, bottom = true
                };
                brightSides = new RectSides()
                {
                    left = true, top = true
                };
            }
            DrawRectMethods.DrawRectangle(drawRect, graf, Params["Color"].AsColor().DarkColor(20), rect.BorderSize, Params["CornerRadius"].AsInteger(), darkSides);
            DrawRectMethods.DrawRectangle(drawRect, graf, Params["Color"].AsColor().BrightColor(20), rect.BorderSize, Params["CornerRadius"].AsInteger(), brightSides);
            DrawRectMethods.DrawRectangle(drawRect, graf, Params["Color"].AsColor().DarkColor(40), 1, Params["CornerRadius"].AsInteger(), darkSides);
            DrawRectMethods.DrawRectangle(drawRect, graf, Params["Color"].AsColor().DarkColor(10), 1, Params["CornerRadius"].AsInteger(), brightSides);
        }
 public static void Rect(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
 {
     DrawRectMethods.DrawRectangle(Params["Rect", rect.Rect].As <Rectangle>(), graf, Params["Color"].AsColor(),
                                   Params["Width", rect.BorderSize].AsInteger(),
                                   Params["CornerRadius"].AsInteger(), Params["Sides", () => { return(new RectSides()
         {
             Full = true
         }); }].As <RectSides>());
 }
        public static void Text(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
        {
            var text = Params["Text"].AsString();

            if (text == "")
            {
                return;
            }
            var drawRect = Params["Rect", rect.Rect].As <Rectangle>();
            var font     = Params["Font", () =>
                                  {
                                      return(new Font("Arial", 8));
                                  }].As <Font>();
            var alignment     = Params["Alignment", StringAlignment.Near].As <StringAlignment>();
            var vertAlignment = Params["VertAlignment", StringAlignment.Center].As <StringAlignment>();

            var sz = graf.MeasureString(text, font);
            var dx = (int)(drawRect.Width - sz.Width);
            var dy = (int)(drawRect.Height - sz.Height);

            var offset = Params["Offset", () => { return(new Point(0, 0)); }].As <Point>();
            var pt     = new Point(0, 0);

            switch (alignment)
            {
            case StringAlignment.Near:
                pt.X = 0;
                break;

            case StringAlignment.Far:
                pt.X = dx;
                break;

            case StringAlignment.Center:
                pt.X = dx / 2;
                break;
            }
            switch (vertAlignment)
            {
            case StringAlignment.Near:
                pt.Y = 0;
                break;

            case StringAlignment.Far:
                pt.Y = dy;
                break;

            case StringAlignment.Center:
                pt.Y = dy / 2;
                break;
            }
            pt.Offset(offset);

            graf.DrawString(text, font, new SolidBrush(Params["Color"].AsColor()), drawRect.X + pt.X, rect.Rect.Y + pt.Y);
        }
 public static void Body(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
 {
     if (Params["Gradient"].AsBoolean())
     {
         BasePainters.FillGradient(Params, rect, graf);
     }
     else
     {
         BasePainters.FillRect(Params, rect, graf);
     }
 }
        public static void ScrollArrowLeft(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
        {
            var drawRect = Params["Rect", rect.Rect].As <Rectangle>();
            var center   = new Point(drawRect.Left + drawRect.Width / 2, drawRect.Top + drawRect.Height / 2);

            var arrowUpPoints = new Point[]
            {
                new Point(center.X - 4, center.Y),
                new Point(center.X + 1, center.Y - 5),
                new Point(center.X + 1, center.Y + 5)
            };

            graf.FillPolygon(new LinearGradientBrush(new Point(center.X - 5, center.Y - 1), arrowUpPoints[2],
                                                     Params["Color", SystemColors.Control].AsColor().DarkColor(60),
                                                     Params["Color", SystemColors.Control].AsColor().BrightColor(10)),
                             arrowUpPoints);
        }
 public static void FillGradient(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
 {
     DrawRectMethods.FillRectGradient(Params["Rect", rect.Rect].As <Rectangle>(), graf, Params["Color"].AsColor(), Params["Color2"].AsColor(),
                                      Params["Direction", SimpleDirection.Vertical].As <SimpleDirection>(),
                                      Params["CornerRadius"].AsInteger());
 }
 public static void FillRect(IControlPropertiesValue Params, DrawRect rect, Graphics graf)
 {
     DrawRectMethods.FillRect(Params["Rect", rect.Rect].As <Rectangle>(), graf, Params["Color"].AsColor(),
                              Params["CornerRadius"].AsInteger());
 }