【问题标题】:Icon on checkBox Button复选框按钮上的图标
【发布时间】:2012-07-12 06:42:56
【问题描述】:

我想在 Visual Studio 2010 的 c# 中的按钮(它是复选框,但外观像按钮)上放置标志性符号。那么有人可以告诉我该怎么做吗??

【问题讨论】:

  • 复选框是什么意思,外观像按钮?
  • @Maresh 有一个winforms 标签。
  • @lazyberezovsky 我假设 OP 意味着它是一个 CheckBox,它的 Appearance 设置为 Appearance.Button。 (对吧?)
  • 是的,我正在使用 Windows 窗体 CheckBox 控件作为按钮。

标签: c# winforms button checkbox


【解决方案1】:
【解决方案2】:

设置 Image 属性或通过像这样的代码button.Image = new Bitmap("Click.jpg");

【讨论】:

  • 但我想放图标,而不是图像
【解决方案3】:

选择复选框的Image 属性。选择Local resource > Import 并导航到您的图标文件。默认情况下不会显示图标文件,因此您需要选择All Files (*.*)过滤器。

如果你想从代码中设置图标,你可以这样做:

checkBox.Image = new Icon(pathToIconFile).ToBitmap();

更新:您不能缩放或拉伸通过Image 属性分配的图像。在这种情况下,您需要改用 BackgrounImage 属性:

checkBox.BackgroundImage = new Icon(pathToIconFile).ToBitmap();
checkBox.BackgroundImageLayout = ImageLayout.Stretch;

您也可以通过编程方式调整图像大小,或通过OnPaint 方法手动绘制,但这需要更多的努力。

更新:调整图像大小

public static Bitmap ResizeImage(Image image, Size size)
{            
    Bitmap result = new Bitmap(size.Width, size.Height);

    using (Graphics graphics = Graphics.FromImage(result))
    {                
        graphics.CompositingQuality = CompositingQuality.HighQuality;
        graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
        graphics.SmoothingMode = SmoothingMode.HighQuality;
        graphics.DrawImage(image, 0, 0, result.Width, result.Height);
    }

    return result;
}

用法:

const int padding = 6;
Size size = new Size(checkBox.Width - padding, checkBox.Height - padding);
checkBox.Image = ResizeImage(new Icon(pathToIconFile).ToBitmap(), size);

【讨论】:

  • 谢谢,它可能会正常工作,但是我的按钮上的图标很大,有什么办法可以适应按钮吗??
  • 在这种情况下,您可以将图标分配给BackgroundImage 属性并将BackgroundImageLayout 设置为Stretch。或者您可以在分配之前调整图标大小。我会选择第一个选项。
  • 你能告诉我如何调整它的大小吗??
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 2016-09-25
  • 1970-01-01
  • 2021-06-02
  • 2023-02-06
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多