Pregunta

Hice un panel y lo configuré para llenar la pantalla, ahora puedo ver las ventanas debajo de él, pero quiero que se haga clic en él, lo que significa que podrían hacer clic en un archivo o ver la información sobre herramientas de otro objeto a través de la transparencia.

RE:Esto puede ser demasiado obvio, pero ¿ha intentado enviar el panel hacia atrás haciendo clic derecho y eligiendo "Enviar hacia atrás"?

Me refiero al escritorio o Firefox, no a algo dentro de mi proyecto.

¿Fue útil?

Solución

Crear un formulario de nivel superior que sea transparente es muy fácil.Simplemente haga que llene la pantalla o el área requerida y defínalo para que tenga un color TransparenyKey y BackColor del mismo valor.

Lograr que ignore el mouse es bastante simple, solo necesita anular WndProc y decirle a WM_HITTEST que todas las posiciones del mouse deben tratarse como transparentes.Lo que hace que el mouse interactúe con lo que sea que esté debajo de la ventana.Algo como esto...

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top