Clique através da transparência para o Visual C # window Formas?
-
02-07-2019 - |
Pergunta
Eu fiz um painel e configurá-lo para preencher a tela, agora eu posso ver as janelas menores, mas eu quero que seja através do clique, o que significa que pode clicar em um arquivo ou ver uma dica de ferramenta de outro objeto através da transparência.
RE:? Isso pode ser muito óbvio, mas você já tentou enviar o painel para a parte de trás com o botão direito e escolher "Enviar para trás"
Quer dizer como o desktop ou o Firefox, não é algo dentro do meu projeto.
Solução
Criando um formulário de nível superior que é transparente é muito fácil. Apenas torná-lo preencher a tela, ou área exigida, e defini-lo para ter uma cor TransparenyKey e BackColor do mesmo valor.
Fazer tudo para ignorar o mouse é suficiente simples, você só precisa substituir o WndProc e dizer ao WM_HITTEST que todas as posições do mouse devem ser tratados como transparente. Assim fazendo com que o mouse para interagir com o que acontece a ser debaixo da janela. Algo assim ...
protected override void WndProc(ref Message m)
{
if (m.Msg == (int)WM_NCHITTEST)
m.Result = (IntPtr)HTTRANSPARENT;
else
base.WndProc(ref m);
}