以下为工作中遇到的,备注一下
先需要几个辅助类
1 #region GripBounds 2 3 using System.Drawing; 4 internal struct GripBounds 5 { 6 private const int GripSize = 6; 7 private const int CornerGripSize = GripSize << 1; 8 9 public GripBounds(Rectangle clientRectangle) 10 { 11 this.clientRectangle = clientRectangle; 12 } 13 14 private Rectangle clientRectangle; 15 public Rectangle ClientRectangle 16 { 17 get { return clientRectangle; } 18 //set { clientRectangle = value; } 19 } 20 21 public Rectangle Bottom 22 { 23 get 24 { 25 Rectangle rect = ClientRectangle; 26 rect.Y = rect.Bottom - GripSize + 1; 27 rect.Height = GripSize; 28 return rect; 29 } 30 } 31 32 public Rectangle BottomRight 33 { 34 get 35 { 36 Rectangle rect = ClientRectangle; 37 rect.Y = rect.Bottom - CornerGripSize + 1; 38 rect.Height = CornerGripSize; 39 rect.X = rect.Width - CornerGripSize + 1; 40 rect.Width = CornerGripSize; 41 return rect; 42 } 43 } 44 45 public Rectangle Top 46 { 47 get 48 { 49 Rectangle rect = ClientRectangle; 50 rect.Height = GripSize; 51 return rect; 52 } 53 } 54 55 public Rectangle TopRight 56 { 57 get 58 { 59 Rectangle rect = ClientRectangle; 60 rect.Height = CornerGripSize; 61 rect.X = rect.Width - CornerGripSize + 1; 62 rect.Width = CornerGripSize; 63 return rect; 64 } 65 } 66 67 public Rectangle Left 68 { 69 get 70 { 71 Rectangle rect = ClientRectangle; 72 rect.Width = GripSize; 73 return rect; 74 } 75 } 76 77 public Rectangle BottomLeft 78 { 79 get 80 { 81 Rectangle rect = ClientRectangle; 82 rect.Width = CornerGripSize; 83 rect.Y = rect.Height - CornerGripSize + 1; 84 rect.Height = CornerGripSize; 85 return rect; 86 } 87 } 88 89 public Rectangle Right 90 { 91 get 92 { 93 Rectangle rect = ClientRectangle; 94 rect.X = rect.Right - GripSize + 1; 95 rect.Width = GripSize; 96 return rect; 97 } 98 } 99 100 public Rectangle TopLeft 101 { 102 get 103 { 104 Rectangle rect = ClientRectangle; 105 rect.Width = CornerGripSize; 106 rect.Height = CornerGripSize; 107 return rect; 108 } 109 } 110 } 111 112 #endregion