2012-07-12 77 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