【问题标题】:Changing Margin/Padding of ButtonText更改 ButtonText 的边距/填充
【发布时间】:2011-05-12 01:40:06
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以覆盖按钮上的绘制事件,并使用ControlPaint.DrawButton(...) 以及常规的字符串绘制来控制您需要的按钮布局。您必须挂钩 MoseDown、MouseUp 等,以使按钮绘制正确的状态(按下、热等)。

    【讨论】:

    • 至少对我有用,即使我认识到你在按钮上没有赢得太多“空间”。可惜了……
    【解决方案2】:

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

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

    【讨论】: