RadioButtonRenderer с прозрачным фоном - PullRequest
2 голосов
/ 11 марта 2011

У меня есть ситуация, когда мне нужно визуализировать переключатель в 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());

Это работает, за исключением того, что в качестве фона используется стандартный элемент управления серого цвета.Как мне установить этот цвет фона на Прозрачный?

1 Ответ

1 голос
/ 11 марта 2011

Не знаю точно, как выглядит ваша кнопка, но с помощью метода Bitmap.MakeTransparent с серым цветом должно работать.

Если вам не нравится, вы можете попробовать более сложныйпреобразование цвета с использованием 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);
...