Applicare aero sfocatura di vetro per una zona di controllo specifico in WPF
Domanda
Nel suo libro ( Pro WPF in C # 2010 Windows Presentation Foundation in .NET 4 ) Matthew MacDonald - scrive:
... è possibile utilizzare DwmEnableBlurBehindWindow () per applicare l'effetto di vetro per una regione specifica in un finestra.
Questo significa che posso applicare un effetto vetro aero ad uno specifico controllo (o almeno una superficie che occupano)?
Si prega di fornire un esempio su come farlo con C #.
Soluzione
Se ho ben capito il vostro intento è quello di applicare DWM implementato sfocatura a un controllo che avrebbe mostrato il contenuto della finestra dietro di esso, allora no:. "Questa funzione può essere richiamata solo sulle finestre di primo livello"
Si potrebbe, tuttavia, applicare DWM sfocatura alla finestra di primo livello che contiene il controllo nella zona del controllo, e vedere le finestre dietro di esso. Scopri le firme P / Invoke per DwmEnableBlurBehindWindow , CreateRectRgn e DeleteObject per ripulire la regione di sfocatura.