【问题标题】:Positioning Image and Text in a button在按钮中定位图像和文本
【发布时间】:2013-05-20 16:15:14
【问题描述】:

我的表单上有一个按钮。我想在左边有一张图片,在右边有文字:

Image Text

但问题是这里的图像没有被拉伸。我的意思是它不适合按钮。

所以我尝试设置BackGroundImage 属性而不是Image 属性。

现在我拉伸了图像。但我无法获得正确的格式。我的意思是现在我无法在左侧获得图像,在右侧获得文本。

是否有其他控件可以代替按钮来解决这个问题?

【问题讨论】:

  • 曾经想过 WPF。你想要的都是可能的,而且很容易做到。如果您告诉我们您在哪个平台上工作,也会很有帮助。
  • 我正在开发 WinForms。我不知道 XAML,所以我不使用 WPF
  • 在开始之前我也没有。它具有智能感知支持。

标签: vb.net winforms image button text


【解决方案1】:

按钮有一个TextImageRelation 属性,将其设置为ImageBeforeText。使用您的图像设置Image 属性,然后就可以了。

【讨论】:

  • 否 仅当使用图像属性设置图像时才有效。如果我们使用 BackGroundImage 属性设置图像,它不起作用。
  • 如果使用 image 属性设置图像,则图像不会随着表单或 bitton 大小的变化而调整大小
  • 这是正确答案。 @Vishal BackgroundImage 属性不适用于Button 控件。获得使用按钮调整自身大小的图像的唯一方法(为什么你有一个随机改变大小的按钮?)是自己绘制它。 Graphics.DrawImage 方法的重载允许您指定比例大小。
【解决方案2】:

如果您使用 Button 控件 .. 并且您想向其添加图像

创建新按钮并在它的属性中做一些事情

  • 图片:您可以从任何地方(本地或资源)插入图片
  • ImageAlign : 设置为左​​中
  • TextAlign : 设置为右中

在 VB.NET 2005 上测试

【讨论】:

    【解决方案3】:

    我认为在任何情况下都不会使用拉伸。它应该如何确定要延伸到的边界? 使用 imagealign set middleleft 和 textalign set middleright 我可以制作这个按钮,它是 82X48。我使用的图像是 52X39。我使用绘画来调整图像的大小。

    【讨论】:

    • 它将根据按钮的边框确定边框。控件知道自己的边界。但你是对的,这没有财产,因为这不是人们想要的。没有人在运行时调整按钮的大小。为了获得效果,他必须自己在所有者绘制的按钮上绘制它。
    • 但是要为文本留出空间,那里没有边框。
    • 没错,它可以测量文本。如果您想编写自定义控件,则必须这样做。你想要的方法是TextRenderer.MeasureText
    【解决方案4】:

    一个可能效果不错的简单方法是将图像和按钮都放在面板中。这使您可以灵活地放置文本、图像缩放以及使用锚点或停靠选项来调整面板和表单的控件大小。未经测试,但听起来它可以工作......

    【讨论】:

      【解决方案5】:

      要更改按钮的图像大小,可以使用 image 属性。您的图像将根据您的特定尺寸调整大小

      Button2.Image = Image.FromFile("c:\image.jpg").GetThumbnailImage(20, 20, Nothing, IntPtr.Zero)
      

      【讨论】:

        猜你喜欢
        • 2018-04-09
        • 1970-01-01
        • 2018-03-04
        • 1970-01-01
        • 2016-12-08
        • 2016-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多