Win8 - Winforms прозрачной формы мыши с интерактивными элементами управления в нем

Я пытаюсь сделать мышь прозрачной формой в win8 и winforms, которая содержит элементы управления, которые можно нажимать.

Я могу сделать мышь формы прозрачной, используя этот код

int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20);

(на win8 подход WndProc не работает)

Но когда я делаю мышь формы прозрачной, элементы управления, содержащиеся в этой форме, также прозрачны для мыши

Что я могу сделать?

1 ответ

Решение

Вы можете создать форму и установить оба BackColor а также TransparencyKey свойства к Color.Magenta,

Скриншот:

Кликните, чтобы пройти через окно и дойти до того, что позади него, но если вы нажмете кнопку 1, кнопка будет нажата.

Примечание: трюк работает для некоторых цветов, например, если вы используете Color.Red, он будет прозрачным, но обрабатывает щелчки, но при использовании Magenta форма также будет прозрачной для мыши.

Другие вопросы по тегам