using System.Drawing; using System.Windows.Forms; namespace IStation.WinFrmUI { public partial class ImageSliderPanel : Label { public ImageSliderPanel() { InitializeComponent(); InitForm(); InitContent(); } #region property private Image _sliderImage; public Image SliderImage { get { return _sliderImage; } set { _sliderImage = value; _picSlider.Image = _sliderImage; } } #endregion #region control private PictureBox _picSlider; #endregion #region method /// /// //绘制边框 /// /// 边框颜色 /// label宽度 /// label高度 private void DrawBorder(Color bordercolor, int x, int y) { Graphics graphics = CreateGraphics(); BorderStyle = BorderStyle.None; Rectangle myRectangle = new Rectangle(0, 0, x, y); ControlPaint.DrawBorder(graphics, myRectangle, bordercolor, ButtonBorderStyle.Solid); //BorderStyle= BorderStyle.None; } #endregion //边框颜色 Color _borderColor = Color.Blue; public void SetBorderColor(Color bordercolor) { _borderColor = bordercolor; _picSlider.Invalidate(); } #region 初始化窗口 private void InitForm() { DoubleBuffered = true; Size = new Size(45, 45); } private void InitContent() { _picSlider = new ImageButton { Cursor = Cursors.Hand, Parent = this, SizeMode = PictureBoxSizeMode.CenterImage, Image = SliderImage, Size = new Size(20, 20) }; _picSlider.Location = new Point(ClientSize.Width / 2 - _picSlider.Width / 2, ClientSize.Height / 2 - _picSlider.Height / 2); _picSlider.Paint += (sender, e) => { DrawBorder(_borderColor, this.Width, this.Height); };//Color.FromArgb(0, 255, 128) _picSlider.MouseUp += (sender, e) => { MouseUpEvent(sender, e); }; _picSlider.MouseMove += (sender, e) => { MouseMoveEvent(sender, e); }; _picSlider.MouseDown += (sender, e) => { MouseDownEvent(sender, e); }; } #endregion #region event public delegate void MouseUpEventHandler(object sender, MouseEventArgs e); public event MouseUpEventHandler MouseUpEvent; public delegate void MouseMoveEventHandler(object sender, MouseEventArgs e); public event MouseMoveEventHandler MouseMoveEvent; public delegate void MouseDownEventHandler(object sender, MouseEventArgs e); public event MouseDownEventHandler MouseDownEvent; #endregion } }