2012-07-12 71 views
1

我想在我的按钮(它是复选框,但外观像按钮)在Visual Studio 2010年,c#.So可以任何一个告诉我怎么做?复选框上的图标按钮

+0

它是WPF?使用混合4. – Maresh 2012-07-12 13:44:01

+0

你是什么意思的复选框,其外观像按钮? – 2012-07-12 13:44:51

+0

@Maresh有一个'winforms'标签。 – 2012-07-12 13:45:45

回答

2

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

+1

但我想把图标,而不是图像 – 2012-07-12 13:48:19

2

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方法手动绘制它,但它会采取更多的努力。

UPDATE:调整图像大小

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); 
+0

感谢它可能会正常工作,但图标是非常大的我的按钮是否有任何方法来适应按钮? – 2012-07-12 14:24:24

+0

在这种情况下,您可以将图标分配给'BackgroundImage'属性并将'BackgroundImageLayout'设置为'Stretch'。或者,您可以在分配图标之前调整图标大小。我会选择第一个选项。 – 2012-07-12 14:58:50

+0

你能告诉我如何调整它? – 2012-07-13 09:10:27