Esempio n. 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MetroControlBoxArea"/> class.
        /// </summary>
        /// <param name="img">The img.</param>
        /// <param name="size">The size.</param>
        /// <param name="defaultcolor">The defaultcolor.</param>
        /// <param name="hovercolor">The hovercolor.</param>
        /// <param name="pressedcolor">The pressedcolor.</param>
        /// <param name="areatype">The areatype.</param>
        /// <param name="name">The name.</param>
        /// <param name="highlightarea">if set to <c>true</c> [highlightarea].</param>
        public MetroControlBoxArea(Image img, Size size, Color defaultcolor, Color hovercolor, Color pressedcolor, MetroControlBoxArea.ControlBoxAreaType areatype = 0, string name = "", bool highlightarea = false)
        {
            Size  size1 = new Size();
            Color color = new Color();

            MetroControlBoxArea.__ENCAddToList(this);
            this._AreaImage       = null;
            this._AreaSize        = new Size(32, 32);
            this._DefaultColor    = Color.White;
            this._HoverColor      = Color.FromArgb(240, 240, 240);
            this._PressedColor    = Color.FromArgb(0, 122, 204);
            this._IconColor       = Color.Black;
            this._AreaType        = MetroControlBoxArea.ControlBoxAreaType.Custom;
            this._Name            = string.Empty;
            this._HighlightColor  = Color.FromArgb(0, 122, 204);
            this._IsHighlighted   = false;
            this._Enabled         = true;
            this._InvertIconColor = false;
            this._Style           = Design.Style.Light;
            if (img != null)
            {
                this._AreaImage = img;
            }
            if (size != size1)
            {
                this._AreaSize = size;
            }
            if (defaultcolor != color)
            {
                this._DefaultColor = defaultcolor;
            }
            if (hovercolor != color)
            {
                this._HoverColor = hovercolor;
            }
            if (this._PressedColor != color)
            {
                this._PressedColor = pressedcolor;
            }
            this._IsHighlighted  = highlightarea;
            this._HighlightColor = this._PressedColor;
            this._AreaType       = areatype;
            this._Name           = name;
            PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged;

            if (propertyChangedEventHandler != null)
            {
                propertyChangedEventHandler(this, new PropertyChangedEventArgs("Items"));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MetroControlBoxArea"/> class.
        /// </summary>
        /// <param name="areatype">The areatype.</param>
        /// <param name="style">The style.</param>
        /// <param name="name">The name.</param>
        /// <param name="highlightarea">if set to <c>true</c> [highlightarea].</param>
        public MetroControlBoxArea(MetroControlBoxArea.ControlBoxAreaType areatype, Design.Style style, string name = "", bool highlightarea = false)
        {
            MetroControlBoxArea.__ENCAddToList(this);
            this._AreaImage       = null;
            this._AreaSize        = new Size(32, 32);
            this._DefaultColor    = Color.White;
            this._HoverColor      = Color.FromArgb(240, 240, 240);
            this._PressedColor    = Color.FromArgb(0, 122, 204);
            this._IconColor       = Color.Black;
            this._AreaType        = MetroControlBoxArea.ControlBoxAreaType.Custom;
            this._Name            = string.Empty;
            this._HighlightColor  = Color.FromArgb(0, 122, 204);
            this._IsHighlighted   = false;
            this._Enabled         = true;
            this._InvertIconColor = false;
            this._Style           = Design.Style.Light;
            if (style == Design.Style.Light)
            {
                this._DefaultColor = Design.MetroColors.LightDefault;
                this._HoverColor   = Design.MetroColors.LightHover;
                this._PressedColor = Design.MetroColors.AccentBlue;
                this._IconColor    = Design.MetroColors.LightIcon;
            }
            else if (style == Design.Style.Dark)
            {
                this._DefaultColor = Design.MetroColors.DarkDefault;
                this._HoverColor   = Design.MetroColors.DarkHover;
                this._PressedColor = Design.MetroColors.AccentBlue;
                this._IconColor    = Design.MetroColors.LightHover;
            }
            this._HighlightColor = this._PressedColor;
            this._IsHighlighted  = highlightarea;
            this._Name           = name;
            this._AreaType       = areatype;
            PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged;

            if (propertyChangedEventHandler != null)
            {
                propertyChangedEventHandler(this, new PropertyChangedEventArgs("Items"));
            }
        }
        /// <summary>
        /// Draws the icon.
        /// </summary>
        /// <param name="g">The g.</param>
        /// <param name="c">The c.</param>
        /// <param name="typ">The typ.</param>
        /// <param name="r">The r.</param>
        /// <param name="bc">The bc.</param>
        private void DrawIcon(Graphics g, Color c, MetroControlBoxArea.ControlBoxAreaType typ, Rectangle r, Color bc)
        {
            Rectangle rectangle;
            Point     point;
            Point     point1;

            switch (typ)
            {
            case MetroControlBoxArea.ControlBoxAreaType.Minimize:
            {
                r = new Rectangle(checked (checked (r.X + checked ((int)Math.Round((double)r.Width / 2))) - 4), checked (checked (r.Y + checked ((int)Math.Round((double)r.Height / 2))) - 4), 8, 8);
                using (Pen pen = new Pen(c, 3f))
                {
                    point1 = new Point(r.X, checked (checked (r.Y + r.Height) - 2));
                    point  = new Point(checked (r.X + r.Width), checked (checked (r.Y + r.Height) - 2));
                    g.DrawLine(pen, point1, point);
                }
                break;
            }

            case MetroControlBoxArea.ControlBoxAreaType.Maximize:
            {
                r = new Rectangle(checked (checked (r.X + checked ((int)Math.Round((double)r.Width / 2))) - 4), checked (checked (r.Y + checked ((int)Math.Round((double)r.Height / 2))) - 4), 8, 8);
                using (Pen pen1 = new Pen(c, 1f))
                {
                    if (this.FindForm().WindowState == FormWindowState.Normal)
                    {
                        rectangle = new Rectangle(checked (r.X + 3), r.Y, 7, 7);
                        g.DrawRectangle(pen1, rectangle);
                        rectangle = new Rectangle(checked (r.X + 3), checked (r.Y + 1), 7, 6);
                        g.DrawRectangle(pen1, rectangle);
                        rectangle = new Rectangle(r.X, checked (r.Y + 4), 7, 6);
                        g.DrawRectangle(pen1, rectangle);
                        rectangle = new Rectangle(r.X, checked (r.Y + 3), 7, 7);
                        g.DrawRectangle(pen1, rectangle);
                        using (SolidBrush solidBrush = new SolidBrush(bc))
                        {
                            rectangle = new Rectangle(checked (r.X + 1), checked (r.Y + 5), 6, 4);
                            g.FillRectangle(solidBrush, rectangle);
                        }
                    }
                    else if (this.FindForm().WindowState == FormWindowState.Maximized)
                    {
                        rectangle = new Rectangle(checked (r.X + 1), checked (r.Y + 1), checked (r.Width - 1), checked (r.Height - 1));
                        g.DrawRectangle(pen1, rectangle);
                        rectangle = new Rectangle(checked (r.X + 1), checked (r.Y + 2), checked (r.Width - 1), checked (r.Height - 2));
                        g.DrawRectangle(pen1, rectangle);
                    }
                }
                break;
            }

            case MetroControlBoxArea.ControlBoxAreaType.Close:
            {
                g.SmoothingMode = SmoothingMode.AntiAlias;
                r = new Rectangle(checked (checked (r.X + checked ((int)Math.Round((double)r.Width / 2))) - 4), checked (checked (r.Y + checked ((int)Math.Round((double)r.Height / 2))) - 4), 8, 8);
                using (Pen pen2 = new Pen(c, 2f))
                {
                    point  = new Point(r.X, r.Y);
                    point1 = new Point(checked (r.X + r.Width), checked (r.Y + r.Height));
                    g.DrawLine(pen2, point, point1);
                    point1 = new Point(r.X, checked (r.Y + r.Height));
                    point  = new Point(checked (r.X + r.Width), r.Y);
                    g.DrawLine(pen2, point1, point);
                }
                break;
            }
            }
            g.SmoothingMode = SmoothingMode.HighSpeed;
        }