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
}
}