我有2个groupboxes,我想定制一些,我不想求助于具有标签的面板(这将意味着我会有如果我需要一个边框,则面板和父控件的背景颜色相同,因为标签必须设置颜色才能覆盖文字背后的边框)。C#Groupbox - 自定义边框/标题的外观和感觉
我已经设法捕捉油漆事件,并使用下面的代码更改边框颜色:
Graphics gfx = e.Graphics;
Pen p = new Pen(Color.FromArgb(86, 136, 186), 3);
GroupBox gb = (GroupBox)sender;
Rectangle r = new Rectangle(0, 0, gb.Width, gb.Height);
gfx.DrawLine(p, 0, 5, 0, r.Height - 2);
gfx.DrawLine(p, 0, 5, 10, 5);
gfx.DrawLine(p, 62, 5, r.Width - 2, 5);
gfx.DrawLine(p, r.Width - 2, 5, r.Width - 2, r.Height - 2);
gfx.DrawLine(p, r.Width - 2, r.Height - 2, 0, r.Height - 2);
我的问题是,像这样的,如果标题太长那么重叠的边界。因为它与顶部的左侧边框重叠 - 只需调整第二行DrawLine
即可轻松解决。不过,我想检测文本的x和宽度测量值,以便我可以正确定位边框。
有没有人有任何想法如何做到这一点?我在Google上看了一段时间,但没有发现任何内容。我知道标题是通过GroupBox.Text
设置的。
也请说出是否有任何其他测量可能需要,基于我改变边框的粗细,所以如果字体很小但边界是10像素开始半边向下看起来很奇怪。 。
在此先感谢。
问候,
理查德
感谢这应该工作一种享受! – ClarkeyBoy 2010-10-30 09:19:11