改变ButtonText的边距/填充

时间:2010-11-18 14:16:51

标签: c# winforms .net-3.5 button margin

我正在为我的“大型”WinForms项目编写一个小助手应用程序。在这个小应用程序中,我正在显示一个带有几个按钮的UserControl。现在有标准文本到按钮的边距。

我的意思是,按钮看起来像这样:

~~~~~~~~~~~~~
~~
~ButtonText~
~~
~~~~~~~~~~~~~

但我希望ButtonText几乎“触及”按钮。换句话说:ButtonText和Buttonbounds之间的标准空间对于我的需求来说太大了。是否有可能改变这种行为?

2 个答案:

答案 0 :(得分:1)

您可以覆盖按钮上的绘制事件,并使用ControlPaint.DrawButton(...)和常规字符串绘制来控制按钮布局以满足您的需要。你将不得不挂钩MoseDown,MouseUp等,以使按钮被绘制成正确的状态(郁闷,闷热等)。

答案 1 :(得分:0)

要实现这一点,您可以创建一个包含停靠按钮的UserControl,然后您可以覆盖UserControl的行为,这样当它自动调整尺寸时,它的尺寸小于按钮的尺寸通常需要并因此强制按钮文本靠近边缘。但是,您需要使用一些试用版错误,以确保所有DPI设置的文字都可见。

您也可以考虑使用ToolStripButtons,使用适当的渲染器使它们看起来像常规按钮。这些通常较小,您应该更多地控制按钮内文本的填充和边距,具体取决于您提供的自定义程度。