Pregunta

Quiero crear una aplicación en c# con varias ventanas que son todos transparente con un poco de texto en.

La parte difícil es hacer que estas formas de sentarse en la parte superior del escritorio, pero en virtud de los iconos del escritorio.Es esto posible?

¿Fue útil?

Solución

Sólo hacer que la ventana transparente es muy sencillo:

this.BackColor = Color.Fuchsia;
this.TransparencyKey = Color.Fuchsia;

Usted puede hacer algo como esto para hacer lo que pueden interactuar con el escritorio o cualquier otra cosa bajo su ventana:

public const int WM_NCHITTEST = 0x84;
public const int HTTRANSPARENT = -1;

protected override void WndProc(ref Message message)
{
    if ( message.Msg == (int)WM_NCHITTEST )
    {
        message.Result = (IntPtr)HTTRANSPARENT;
    }
    else
    {
        base.WndProc( ref message );
    }
}

Otros consejos

Gracias por los consejos Jeff.Todavía no es lo que yo busco.Me gustaría eficazmente como la ventana a aparecer como si fuera parte de el escritorio de modo que los iconos podía sentarse en la parte superior de mi formulario.

Tal vez hay una manera diferente de hacerlo.Puedo dibujar texto y gráficos directamente en el escritorio?

El método descrito anteriormente por Jeff Hillman es eficaz en la toma de la ventana transparente, que debe dar la posibilidad para que parezca que es parte del escritorio (que usted ha mencionado es su objetivo.

Una cuestión que se puede ejecutar en, que acabo de ejecutar en así, se acerca a la ventana con cualquier anti-aliasing de los indicadores establecidos.Específicamente, el uso de DrawText, cualquier texto que se representa con anti-aliasing indicadores establecidos se representan como si el fondo NO eran transparentes.El resultado final es que usted consigue de texto con un ligero off-color de borde a su alrededor.Estoy seguro de que esto podría ser cierto para cualquier otra cosa, aunque yo no lo he probado.

¿Hay alguna idea sobre cómo resolver eso?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top