/// <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")); } }
/// <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; }