Appliquer aéro flou de verre à une zone de contrôle spécifique dans WPF
Question
Dans son livre ( WPF Pro en C # 2010 Windows Presentation Foundation dans .NET 4 ) Matthew MacDonald - écrit:
... vous pouvez utiliser DwmEnableBlurBehindWindow () pour appliquer l'effet de verre à une région spécifique dans un fenêtre.
Est-ce que cela signifie que je peux appliquer un effet de verre aéro à un contrôle de spécifiques (ou au moins une zone qu'ils occupent)?
S'il vous plaît donner un exemple sur la façon de le faire avec C #.
La solution
Si je comprends votre intention est d'appliquer DWM mis en œuvre le flou à un contrôle qui affiche le contenu dans la fenêtre derrière elle, aucune. «Cette fonction ne peut être appelée sur les fenêtres de niveau supérieur »
Vous pouvez, toutefois, appliquer le flou DWM à la fenêtre contenant le contrôle de premier niveau dans la zone du contrôle, et voir les fenêtres derrière elle. Consultez les signatures P / Invoke pour DwmEnableBlurBehindWindow , CreateRectRgn et DeleteObject pour nettoyer la région de flou.