ImageButton.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace Azylee.WinformSkin.ButtonUI
  10. {
  11. public partial class ImageButton : PictureBox
  12. {
  13. #region 属性
  14. private Image _MouseHoverImage = null;
  15. [Category("状态切换")]
  16. [Description("鼠标悬停时的图片")]
  17. [DefaultValue(typeof(bool), "true")]
  18. public Image MouseHoverImage
  19. {
  20. get { return _MouseHoverImage; }
  21. set { _MouseHoverImage = value; }
  22. }
  23. private Image _MouseDownImage = null;
  24. [Category("状态切换")]
  25. [Description("鼠标按下时的图片")]
  26. [DefaultValue(typeof(bool), "true")]
  27. public Image MouseDownImage
  28. {
  29. get { return _MouseDownImage; }
  30. set { _MouseDownImage = value; }
  31. }
  32. private Image _DefaultImage = null;
  33. [Category("状态切换")]
  34. [Description("鼠标按下时的图片")]
  35. [DefaultValue(typeof(bool), "true")]
  36. public Image DefaultImage
  37. {
  38. get { return _DefaultImage; }
  39. set
  40. {
  41. SizeMode = PictureBoxSizeMode.StretchImage;
  42. _DefaultImage = value;
  43. Image = _DefaultImage;
  44. }
  45. }
  46. #endregion
  47. public ImageButton()
  48. {
  49. InitializeComponent();
  50. }
  51. void Hover()
  52. {
  53. if (MouseHoverImage != null)
  54. {
  55. Image = MouseHoverImage;
  56. }
  57. else
  58. {
  59. Image = DefaultImage;
  60. }
  61. }
  62. void Down()
  63. {
  64. if (MouseDownImage != null)
  65. Image = MouseDownImage;
  66. }
  67. void Default()
  68. {
  69. Image = DefaultImage;
  70. }
  71. private void ImageButton_MouseDown(object sender, MouseEventArgs e)
  72. {
  73. Down();
  74. }
  75. private void ImageButton_MouseEnter(object sender, EventArgs e)
  76. {
  77. Hover();
  78. }
  79. private void ImageButton_MouseHover(object sender, EventArgs e)
  80. {
  81. Hover();
  82. }
  83. private void ImageButton_MouseLeave(object sender, EventArgs e)
  84. {
  85. Default();
  86. }
  87. private void ImageButton_MouseUp(object sender, MouseEventArgs e)
  88. {
  89. Hover();
  90. }
  91. }
  92. }