Есть ли способ сделать окно WPF прозрачным, не теряя не клиентскую область (границы, строку заголовка, кнопки закрытия / минимизации / максимизации)?
Для установки «AllowsTransparency» в значение «true» требуется, чтобы«WindowStyle» должен быть установлен в «None» (как объяснено в в этом ответе ), что удаляет не-клиентскую область.
Один из разработчиков WPF писал о том, как прозрачные окнаработать в WPF , и почему было бы трудно реализовать поддержку прозрачности вне клиентской области.
Независимо от того, что могут предложить ваши стили окон, прозрачные окна WPF не имеют видимыхне клиентская зона.Это хорошо для многих сценариев, где целью является создание пользовательской формы окна, но это может раздражать людей, которые просто хотят "добавить" нормальное окно.
Решение только для WPFзатем, кажется, не может быть и речи.
Вызов собственной функции SetLayeredWindowAttributes и передача дескриптора окна WPF и LWA_ALPHA не имеют никакого эффекта, как и ожидалось.
Единственный другойПодход, который я могу придумать, заключается в размещении содержимого WPF в окне Win32 (или, возможно, WinForms).Я подозреваю, что попытка сделать это приведет к проблемам с воздушным пространством , однако.
Многослойные окна WPF имеют различные возможности в разных операционных системах ... WPF не поддерживает цветовые клавиши прозрачности,потому что WPF не может гарантировать отображение именно того цвета, который вы запрашивали, особенно когда рендеринг выполняется с аппаратным ускорением.
Я не уверен, правильно ли я читаю вышеупомянутое, но звучит как попытка выполнить хостСодержимое WPF с прозрачностью невозможно.
Есть идеи?