Вы можете использовать взаимодействие. Используйте функцию SendMessage () , чтобы отправить вашему окну пользовательское сообщение. Затем окно может вызвать SetLayeredWindowAttributes () , как только вы получите это сообщение, чтобы изменить его прозрачность.
Другое дело, что вы действительно должны сделать окно прозрачным, когда оно теряет фокус, слушая WM_KILLFOCUS
EDIT:
Зафиксируйте события деактивации и активации в C #.
private void Form1_Deactivate( object sender, EventArgs e )
{
this.Opacity = 0.5 ;
}
private void Form1_Activated( object sender, EventArgs e )
{
this.Opacity = 1.0 ;
}