我遇到需要向System.Drawing.Image渲染单选按钮的情况。
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());
除了它将默认控件 - 灰色作为背景绘制外,这是有效的。如何将背景颜色设置为透明?
答案 0 :(得分:1)
不确定按钮的外观如何,但使用灰色的Bitmap.MakeTransparent Method应该有效。
如果不符合您的喜好,您可以使用ColorMatrix Class尝试更复杂的颜色转换:
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);