2011-03-10 100 views
2

我有一種情況,需要將單選按鈕呈現給System.Drawing.Image。具有透明背景的RadioButtonRenderer

System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(20,16); 
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap)) 
{          
    RadioButtonRenderer.DrawRadioButton(g, new Point(2, 2), RadioButtonState.CheckedPressed); 
} 
return System.Drawing.Image.FromHbitmap(bitmap.GetHbitmap()); 

此作品除了它的默認控制灰色作爲背景。我如何設置背景顏色爲透明?

回答

1

不知道你的按鈕的外觀如何,但使用Bitmap.MakeTransparent Method灰色應該工作。

ColorMatrix matrix = new ColorMatrix(); 

// This will change the image's opacity. 
matrix.Matrix33 = 0.5f; 

ImageAttributes imgAttrs = new ImageAttributes(); 
imgAttrs.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); 

g.DrawImage(img, new Rectangle(0, 0, 50, 50), 0, 0, 50, 50, GraphicsUnit.Pixel, imgAttrs); 

如果不是根據自己的喜好,你可以使用ColorMatrix Class嘗試更復雜的顏色變換