protected virtual void OnPaintUpDownButton( UpDownButtonPaintEventArgs e) { Graphics g = e.Graphics; Rectangle rect = e.ClipRectangle; Color upButtonBaseColor = SkinManager.CurrentSkin.DefaultControlColor.First; Color upButtonBorderColor = this._BorderColor; Color upButtonArrowColor = Color.Green; Color downButtonBaseColor = SkinManager.CurrentSkin.DefaultControlColor.First; Color downButtonBorderColor = this._BorderColor; Color downButtonArrowColor = Color.Green; Rectangle upButtonRect = rect; upButtonRect.X += 2; upButtonRect.Y += 2; upButtonRect.Width = rect.Width / 2 - 4; upButtonRect.Height -= 4; Rectangle downButtonRect = rect; downButtonRect.X = upButtonRect.Right; downButtonRect.Y += 2; downButtonRect.Width = rect.Width / 2 - 4; downButtonRect.Height -= 4; if (Enabled) { if (e.MouseOver) { if (e.MousePress) { if (e.MouseInUpButton) { upButtonBaseColor = SkinManager.CurrentSkin.HeightLightControlColor.First; } else { downButtonBaseColor = SkinManager.CurrentSkin.HeightLightControlColor.First; } } else { if (e.MouseInUpButton) { upButtonBaseColor = SkinManager.CurrentSkin.DefaultControlColor.First; } else { downButtonBaseColor = SkinManager.CurrentSkin.DefaultControlColor.First; } } } } else { upButtonBaseColor = SystemColors.Control; upButtonBorderColor = SystemColors.ControlDark; upButtonArrowColor = SystemColors.ControlDark; downButtonBaseColor = SystemColors.Control; downButtonBorderColor = SystemColors.ControlDark; downButtonArrowColor = SystemColors.ControlDark; } GDIHelper.FillPath(g, new RoundRectangle(rect, new CornerRadius()), this._BackColor, this._BackColor); RenderButton( g, upButtonRect, upButtonBaseColor, upButtonBorderColor, upButtonArrowColor, ArrowDirection.Left); RenderButton( g, downButtonRect, downButtonBaseColor, downButtonBorderColor, downButtonArrowColor, ArrowDirection.Right); UpDownButtonPaintEventHandler handler = base.Events[EventPaintUpDownButton] as UpDownButtonPaintEventHandler; if (handler != null) { handler(this, e); } }
protected virtual void OnPaintUpDownButton( UpDownButtonPaintEventArgs e) { Graphics g = e.Graphics; Rectangle rect = e.ClipRectangle; Color upButtonBaseColor = _baseColor; Color upButtonBorderColor = _borderColor; Color upButtonArrowColor = _arrowColor; Color downButtonBaseColor = _baseColor; Color downButtonBorderColor = _borderColor; Color downButtonArrowColor = _arrowColor; Rectangle upButtonRect = rect; upButtonRect.X += 4; upButtonRect.Y += 4; upButtonRect.Width = rect.Width / 2 - 8; upButtonRect.Height -= 8; Rectangle downButtonRect = rect; downButtonRect.X = upButtonRect.Right + 2; downButtonRect.Y += 4; downButtonRect.Width = rect.Width / 2 - 8; downButtonRect.Height -= 8; if (Enabled) { if (e.MouseOver) { if (e.MousePress) { if (e.MouseInUpButton) { upButtonBaseColor = GetColor(_baseColor, 0, -35, -24, -9); } else { downButtonBaseColor = GetColor(_baseColor, 0, -35, -24, -9); } } else { if (e.MouseInUpButton) { upButtonBaseColor = GetColor(_baseColor, 0, 35, 24, 9); } else { downButtonBaseColor = GetColor(_baseColor, 0, 35, 24, 9); } } } } else { upButtonBaseColor = SystemColors.Control; upButtonBorderColor = SystemColors.ControlDark; upButtonArrowColor = SystemColors.ControlDark; downButtonBaseColor = SystemColors.Control; downButtonBorderColor = SystemColors.ControlDark; downButtonArrowColor = SystemColors.ControlDark; } g.SmoothingMode = SmoothingMode.AntiAlias; Color backColor = Enabled ? _backColor : SystemColors.Control; using (SolidBrush brush = new SolidBrush(_backColor)) { rect.Inflate(1, 1); g.FillRectangle(brush, rect); } RenderButton( g, upButtonRect, upButtonBaseColor, upButtonBorderColor, upButtonArrowColor, ArrowDirection.Left); RenderButton( g, downButtonRect, downButtonBaseColor, downButtonBorderColor, downButtonArrowColor, ArrowDirection.Right); UpDownButtonPaintEventHandler handler = base.Events[EventPaintUpDownButton] as UpDownButtonPaintEventHandler; if (handler != null) { handler(this, e); } }
/// <summary> /// 对左右键进行重绘 /// </summary> /// <param name="e">左右键的参数,继承painteventargs</param> protected virtual void OnPaintUpDownButton( UpDownButtonPaintEventArgs e) { Graphics g = e.Graphics; Rectangle rect = e.ClipRectangle;//程序分配给左右箭头的矩形 Color upButtonBaseColor = _baseColor; Color upButtonBorderColor = _borderColor; Color upButtonArrowColor = _arrowColor; Color downButtonBaseColor = _baseColor; Color downButtonBorderColor = _borderColor; Color downButtonArrowColor = _arrowColor; Rectangle upButtonRect = rect; Bitmap bmp = new Bitmap(rect.Width, rect.Height); Graphics gb = Graphics.FromImage(bmp); Rectangle bmpRect = new Rectangle(0, 0, rect.Width, rect.Height); upButtonRect.X = 1; upButtonRect.Y = 1; upButtonRect.Width = rect.Width / 2 - 4; upButtonRect.Height -= 2; Rectangle downButtonRect = rect; downButtonRect.X = upButtonRect.Right + 2; downButtonRect.Y = 1; downButtonRect.Width = rect.Width / 2 - 4; downButtonRect.Height -= 2; if (Enabled) { if (e.MouseOver) { if (e.MousePress)//按下键时 { if (e.MouseInUpButton) { upButtonBaseColor = GetColor(_baseColor, 0, -35, -24, -9); } else { downButtonBaseColor = GetColor(_baseColor, 0, -35, -24, -9); } } else//仅仅是鼠标over未按键时 { if (e.MouseInUpButton) { upButtonBaseColor = GetColor(_baseColor, 0, 35, 24, 9); } else { downButtonBaseColor = GetColor(_baseColor, 0, 35, 24, 9); } } } } else { upButtonBaseColor = SystemColors.Control; upButtonBorderColor = SystemColors.ControlDark; upButtonArrowColor = SystemColors.ControlDark; downButtonBaseColor = SystemColors.Control; downButtonBorderColor = SystemColors.ControlDark; downButtonArrowColor = SystemColors.ControlDark; } g.SmoothingMode = SmoothingMode.AntiAlias; gb.SmoothingMode = SmoothingMode.AntiAlias; Color backColor = Enabled ? _backColor : SystemColors.Control; using (SolidBrush brush = new SolidBrush(_backColor)) { rect.Inflate(1, 1); gb.FillRectangle(brush, bmpRect); } RenderButton( gb, upButtonRect, upButtonBaseColor, upButtonBorderColor, upButtonArrowColor, ArrowDirection.Left); RenderButton( gb, downButtonRect, downButtonBaseColor, downButtonBorderColor, downButtonArrowColor, ArrowDirection.Right); g.DrawImage(bmp, rect.X, rect.Y); bmp.Dispose(); gb.Dispose(); UpDownButtonPaintEventHandler handler = base.Events[EventPaintUpDownButton] as UpDownButtonPaintEventHandler; if (handler != null) { handler(this, e); } }