【问题标题】:Remove all extra space around a button with an image?删除带有图像的按钮周围的所有额外空间?
【发布时间】:2012-05-14 06:48:30
【问题描述】:

好吧,尽我所能,我这辈子都无法摆脱按钮周围的小边框。

编辑:我应该提一下,以防我没有说清楚,这些是带有图像的按钮,设置为平面,按钮大小与图像一致。

以下图片:

第一,我这辈子都无法让这些边界消失。我已经检查了我能想到的一切。他们是:

  • 边框 0
  • 没有边距
  • 无填充
  • 手动调整为图片大小 (75px)
  • 在所有列的表格布局中:
    • 手动调整为图片宽度 (75px)
    • 无边界

似乎没有什么能真正“有效”摆脱这些。如果我将列的大小缩小为 74 像素而不是 75 像素,它们中的大多数会消失,但仍有一些。我已经对图像进行了三次和四次检查,但它们没有任何我可以拾取的东西应该导致这种情况……边界周围没有透明度,绝对没有看起来像那样的边界。

这导致我遇到第二个问题:

对话框较小时的设置按钮...

对话框展开时的设置按钮。

设置按钮也在同一个表格布局面板中。

我还检查了表格布局面板上的所有设置。我找不到任何填充或边距或任何表明应该发生这种情况的设置。

有人有这方面的经验吗?我错过了什么..?

【问题讨论】:

  • 当一切都失败了... Control.Region

标签: winforms button custom-controls


【解决方案1】:

简单的解决方案:直接使用 PictureBox,就好像它是一个按钮一样。您可以在鼠标悬停或单击鼠标时更改图像。

【讨论】:

    【解决方案2】:

    您是否尝试过工具栏/条带/这些天被称为的任何东西?可能不会有帮助,因为我相信它代表你,但值得一试。

    最后,您可以将按钮扔进垃圾桶并编写自己的控件。管理 N 个按钮的单个控件在这里可以很好地工作。

    我不明白你的第二个问题。有什么问题?如果您无论如何滚动自己的控件,它将被修复。

    【讨论】:

    • 这不是一个工具栏/条,它们应该看起来像标签。选项卡控件不太适合,因为我对使用客户端设计的皮肤在 XP 中的外观有疑问。所以模拟选项卡的按钮(它们触发面板的隐藏和显示)就是这样。按钮实际上是自定义控件;我通过覆盖 OnPaint 并自己绘制它来进行临时修复,但这会在其他地方引起问题,因为我在应用程序的其他地方有这些控件的其他实例。当与他们的对话被调整大小时,他们并不总是正确地重绘。
    • 还有第二个问题是带有小齿轮的按钮在展开对话框时会出现“白线填充”综合症。 (请注意,靠近时可以吗?)
    • 这就是 WinForms 的问题:控件不仅昂贵(每个控件都分配了系统资源),而且它们不喜欢无问题地背靠背存在。每个控件都是一个系统窗口对象,每个控件本身就是一个小岛。当您需要将“控件”打包在一起像素完美,或者您需要您的应用程序性能更好时,解决方案是(通常)创建一个单一的控件,提供内部繁琐位的外观和功能(在您的情况下为按钮)。您认为 Office 功能区上的小部件由多少个“控件”组成?正是一个。
    • 我并不是说您不能以某种方式使库存控制按您想要的方式工作,但是如果您想“正确”地做,那就自己做。
    【解决方案3】:

    虽然不能解决间距问题,但作为一种解决方法,您可以使用 @987654324 的 BackgroundImageLayout 将当前“选项卡”和控制面板图像“后面”的灰色渐变设置为 TableLayoutPanelBackgroundImage @。虽然没有解决间距问题,但它会使其不明显。

    【讨论】:

      【解决方案4】:

      编写一个 winforms 控件有其挑战(这里是经验之谈)。我同意这是需要的。根据您的项目,您可能会考虑使用 XAML 和 WPF。它提供了您似乎在您的应用程序中寻找的精细细节。

      有多种方法可以在 winform 应用程序中托管 XAML 控件,但如果您采用这种方式,最好创建一个本机 WPF 应用程序。反之亦然(WPF 应用程序中的 winform 控件)。

      【讨论】:

        【解决方案5】:

        您是否检查了图像是否在您想要的图形像素周围有透明像素?

        可能是一个简单的作物解决方案。

        【讨论】:

          猜你喜欢
          • 2013-08-21
          • 1970-01-01
          • 2018-02-18
          • 2014-08-25
          • 1970-01-01
          • 1970-01-01
          • 2015-12-09
          • 1970-01-01
          相关资源
          最近更新 更多