GDI +: Почему FillRectangle прозрачен на стекле, а FillEllipse непрозрачен? - PullRequest
4 голосов
/ 26 ноября 2010

Я рисую прямоугольник и эллипс на стекле.

brush = new SolidBrush(0xFF000000); //solid (i.e. non-opaque) black
graphics.FillRectangle(brush, x,    y,    30, 30);
graphics.FillEllipse(brush,   x+33, y-15, 30, 30);
  • рисунок с эллипсом: непрозрачный
  • рисунок с прямоугольником: это не непрозрачный

alt text

Что здесь происходит?

Вы можете увидеть то же самое относится и к другим цветам:

brush = new SolidBrush(0xFFff0000); //solid (i.e. non-opaque) red
graphics.FillRectangle(brush, x, y,    30, 30);
graphics.FillEllipse(brush,   x, y+33, 30, 30);

brush = new SolidBrush(0xFF00ff00); //solid (i.e. non-opaque) green
graphics.FillRectangle(brush, x, y,    30, 30);
graphics.FillEllipse(brush,   x, y+33, 30, 30);

brush = new SolidBrush(0xFF0000ff); //solid (i.e. non-opaque) blue
graphics.FillRectangle(brush, x, y,    30, 30);
graphics.FillEllipse(brush,   x, y+33, 30, 30);

brush = new SolidBrush(0xFFffffff); //solid (i.e. non-opaque) white
graphics.FillRectangle(brush, x, y,    30, 30);
graphics.FillEllipse(brush,   x, y+33, 30, 30);

alt text

Вывод : Почему:

  • FillEllipse с непрозрачным цветным рисунком, непрозрачным
  • FillRectangle с непрозрачным цветом рисует частично прозрачным

Примечание: Этот вопрос почти полностью повторяет мой другой вопрос . За исключением того, что этот вопрос касается разница между FillRectangle и FillEllipse - тогда как этот вопрос имеет дело с * Как нарисовать непрозрачные цвета на стекле.

Смотри также

...