Щелкните по прозрачности для оконных форм Visual C #?

StackOverflow https://stackoverflow.com/questions/112224

Вопрос

Я создал панель и настроил ее так, чтобы она заполняла экран, теперь я могу видеть окна под ней, но я хочу, чтобы она была сквозной, то есть они могли щелкнуть файл или увидеть всплывающую подсказку другого объекта через прозрачность.

РЕ:Возможно, это слишком очевидно, но вы пробовали отправить панель назад, щелкнув правой кнопкой мыши и выбрав "Отправить назад"?

Я имею в виду рабочий стол или firefox, а не что-то внутри моего проекта.

Это было полезно?

Решение

Создать прозрачную форму верхнего уровня очень просто.Просто сделайте так, чтобы он заполнял экран или требуемую область, и определите для него цвет TransparenyKey и BackColor с одинаковым значением.

Заставить его игнорировать мышь достаточно просто, вам просто нужно переопределить WndProc и сообщить WM_HITTEST, что все позиции мыши должны обрабатываться как прозрачные.Таким образом, мышь взаимодействует со всем, что находится под окном.Что-то вроде этого...

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top