1、控件效果图
此效果图中的标题颜色、字号及字体可以在控件属性中设置。标题背景的渐变色及布局内容的背景色也可以在属性中设置。
2、实现的代码(用户控件)
1 public partial class UcPanel : UserControl 2 { 3 public UcPanel() 4 { 5 InitializeComponent(); 6 } 7 #region 外观 8 9 [Category("自定义-外观"), DefaultValue("标签"), Description("Caption控件部分的字样")] 10 public string CaptionText { get { return label.Text; } set { label.Text = value; } } 11 12 13 14 [Category("自定义-外观"), Description("Caption控件部分的字体")] 15 public Font CaptionFont { get { return label.Font; } set { label.Font = value; } } 16 17 private Color LabelForeColor = Color.White; 18 [Category("自定义-外观"), Description("Caption控件部分的字体颜色")] 19 public Color CaptionColor 20 { 21 get { return LabelForeColor; } 22 set 23 { 24 LabelForeColor = value; 25 label.ForeColor = LabelForeColor; 26 } } 27 28 29 private Color PanelBackColor1 = Color.Blue; 30 private Color PanelBackColor2 = Color.White; 31 [Category("自定义-外观"), Description("控件Panel部分的开始颜色")] 32 public Color PanelColorUp 33 { 34 get { return PanelBackColor1; } 35 set 36 { 37 PanelBackColor1 = value; 38 } 39 } 40 41 [Category("自定义-外观"), Description("控件Panel部分的结束颜色")] 42 public Color PanelColorDw 43 { 44 get { return PanelBackColor2; } 45 set 46 { 47 PanelBackColor2 = value; 48 49 } 50 } 51 52 private Color PanelBackColor = DefaultBackColor; 53 [Category("自定义-外观"), Description("Panel2控件部分的背景颜色")] 54 public Color Panel2Color 55 { 56 get { return PanelBackColor; } 57 set 58 { 59 PanelBackColor = value; 60 panel2.BackColor = PanelBackColor; 61 } 62 } 63 64 #endregion 外观 65 66 private void panel1_Paint(object sender, PaintEventArgs e) 67 { 68 Graphics g = e.Graphics; 69 Color FColor =PanelBackColor1; 70 Color TColor = PanelBackColor2; 71 Brush b = new LinearGradientBrush(panel1.ClientRectangle, FColor, TColor, LinearGradientMode.Vertical); 72 g.FillRectangle(b, panel1.ClientRectangle); 73 } 74 75 76 77 }