Aero: ¿Cómo dibujar colores sólidos (opacos) en el vidrio?

Usando GDI + para dibujar varios colores:

brush = new SolidBrush(color);
graphics.FillRectangle(brush, x, y, width, height);

Notarás que ningún color opaco se muestra correctamente en el vidrio:

¿Cómo dibujo colores sólidos en vidrio?

También notará que un color completamente opaco se maneja de manera diferente según el color que sea:

negro opaco: totalmente transparentecolor opaco: parcialmente transparenteblanco opaco: completamente opaco

¿Alguien puede señalarme la documentación en el compositor de escritorio que explica cómo se manejan los diferentes colores?

Actualización 3

También notarás queFillRectangle se comporta de manera diferente aFillEllipse:

FillEllipse con un color opaco dibuja un color opacoFillRectangle con un color opaco dibuja parcialmente (o totalmente) transparente

Explicación del comportamiento no sensorial, por favor.

Actualización 4

Siempre aprendiendo sugirió que cambie el modo de composición. DeMSDN:

Enumeración de modo de composición

losCompositingMode La enumeración especifica cómo se combinan los colores renderizados con los colores de fondo. Esta enumeración es utilizada porGraphics::GetCompositingMode y'Gráficos :: SetCompositingMode' métodos de laGráficos clase.

CompositingModeSourceOver

Especifica que cuando se procesa un color, se combina con el color de fondo. La combinación está determinada por el componente alfa del color que se representa.

CompositingModeSourceCopy

Especifica que cuando se representa un color, sobrescribe el color de fondo. Este modo no se puede usar junto con TextRenderingHintClearTypeGridFit.

De la descripción deCompositingModeSourceCopy, parece que no es la opción que quiero. Por las limitaciones que impone, parece la opción que quiero. Y con composición, o transparencia deshabilitadano es la opción que quiero, ya que realiza unaSourceCopy, más bien queSourceBlend:

Afortunadamente, no es un mal que deba contemplar porque no resuelve mi problema real. Después de construir migraphics objeto, intenté cambiar el modo de composición:

graphics = new Graphics(hDC);
graphics.SetCompositingMode(CompositingModeSourceCopy); //CompositingModeSourceCopy = 1

El resultado no tiene efecto en la salida:

NotasWin32 nativono .NET (es decir nativo)no Winforms (es decir nativo)GDI + (es decir nativo)Ver tambiénAero: ¿Cómo dibujar texto ClearType en vidrio?Windows Aero: ¿De qué color pintar para que aparezca el "vidrio"?Vista / 7: ¿Cómo obtener el color del cristal?