Применить размытие аэростекла к определенной области управления в WPF - PullRequest
0 голосов
/ 19 октября 2011

В своей книге ( Pro WPF в C # 2010 Windows Presentation Foundation в .NET 4 ) Мэтью Макдональд - пишет:

... вы можете использовать DwmEnableBlurBehindWindow (), чтобы применить эффект стекла к определенной области в окно.

Значит ли это, что я могу применить эффект аэростекла к определенным элементам управления (или, по крайней мере, к области, которую они занимают)?

Пожалуйста, предоставьте пример того, как это сделать с помощью C #.

1 Ответ

0 голосов
/ 19 октября 2011

Если я понимаю, что вы намереваетесь применить размытие, реализованное в DWM, к элементу управления, который будет отображать содержимое в окне позади него, то нет: «Эта функция может вызываться только в окнах верхнего уровня».

Однако можно применить размытие DWM к окну верхнего уровня, содержащему элемент управления в области элемента управления, и увидеть окна за ним. Проверьте подписи P / Invoke для DwmEnableBlurBehindWindow , CreateRectRgn и DeleteObject , чтобы очистить область размытия.

...