Native Aero Blur-ohne Glas-Effekt auf Grenzenlosen WPF-Fenster
Ich bin mir bewusst dass ähnliche Fragen wurden gestellt und beantwortet. Mine, jedoch ist eine dreiteilige Frage.
Für die Zwecke dieser Frage, dann behalten Sie das folgende im Hinterkopf:
- Ich bin ein amateur, der frühen college-Student informatik zu studieren. Ich bin hoch ungelernte in komplexen Programmierung, aber ich kann verstehen die meisten Terminologie.
- Dies ist ein WPF-Projekt in Visual Studio erstellt mit VB.NET aber Lesen kann ich, C# genau so einfach durch die Sprachen, die' ähnlichkeit.
- Dies ist meine erste Zeit mit dem Experimentieren mit allen DWM-APIs.
1. Die Anwendung von Aero-Glas zu Randlosen Fenster
Erster Linie, ist es möglich, den Glas-Effekt im hintergrund ein randloses Fenster? Wenn dem so ist (und ich glaube es zu sein), wie wird das gemacht?
Zusätzlich, da Windows 8 und höher nicht mehr mit dem Milchglas-Effekt, kann dies noch getan werden, auf diesen Betriebssystemen?
2. Halten Native Blur-Effekt, ohne Glas
Möchte ich die glatte native DWM blur-Effekt, aber ich will nicht die Hochglanz-Glas-overlay, und ich will nicht, das Fenster Farbe die vorher in der der Benutzer die Design-Einstellungen.
3. Customizing-Blur-Radius und Standort
Ist es möglich, nur wenden Sie diesen Effekt auf einen bestimmten Teil des Fensters? Noch wichtiger ist, ist es möglich, passen Sie die Intensität (radius) der Unschärfe-Effekt?
BEARBEITEN - Screenshot-Beispiele
Anfrage, die ich gepostet haben einige Beispiele für den Effekt, den ich erzielen möchte.
Bild oben ist ein aktuellen screenshot von meinem WPF-Anwendung (noch in Arbeit). Sein minimalistisches design setzt stark auf die animation der Bewegung und der änderung der Fenstergröße anpassen.
Mit einigen photoshop-Kenntnisse habe ich gerendert, das Bild oben, zeigt die Wirkung, die ich erzeugen wollte, genau, wie ich es möchte. Beachten Sie Folgendes:
- Die Unschärfe hat einen viel höheren radius (Intensität) als üblich Aero Unschärfe-Effekte
- Die Unschärfe ist nur sichtbar, auf einem Teil des windows
- Die Unschärfe nicht vererbt seine Farbe von dem grünen Farbschema der desktop
- möglich, Duplikat der Wie Sie das erreichen, Vista-Glas-Transparenz (AERO) in einer WPF-Anwendung?
- Ja, aber nur den ersten Teil meiner Frage kann als eine doppelte; die letzten Teile erfordern Antworten, die sich ändern können die notwendigen Methoden, von denen in der Frage, die Sie geschrieben, und somit die Frage als ganzes wird in einem unterschiedlichen Satz von Lösungen. Dies ist ein anderes problem als das, was Sie geschrieben: ich will lediglich die native Unschärfen, die ich nicht wollen, dass die Glas-Effekt.
- Kannst du ein screenshot von dem, was Sie erreichen wollen?
- Screenshots gepostet. Hoffe, das hilft!
- Anfrage meine @marcesosa: ich Liebe das Projekt, ich muss es tun! aber ich weiß nicht, wie es zu implementieren! Könnten Sie bitte fügen Sie Ihrer visual-Projekt, um es herunterzuladen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. Die Anwendung von Aero-Glas zu Randlosen Fenster
Da das, was Sie versuchen zu erreichen ist nicht so sehr ein Glas-Effekt, sondern eher ein transparent+Unschärfe können Sie die folgenden Methoden verwenden, um die Unschärfe hinter dem Fenster.
Windows 7: Sie können Dwmenableblurbehindwindow diese Unschärfe hinter dem Fenster.
Fenster 8: ich havn ' T fand eine brauchbare Lösung, da dwmenableblurbehindwindow diese entfernt wurde in Windows 8.
Windows 10: Sie können SetWindowCompositionAttribute Unschärfe hinter dem Fenster.
2. Halten Native Blur-Effekt, ohne Glas
Die oben genannten Lösungen gelten nur für einen Unschärfe-Effekt hinter dem Fenster, es wird bis zu dem Fenster, um zu definieren, Transparenz und Farbe.
3. Customizing-Blur-Radius und Standort
Mit diesen Ansätzen können Sie nur die Unschärfe unterhalb der gesamten Fenster, und es wird bis zu Ihnen, verwenden Sie einen alpha-Kanal auf Teile der Fenster, das Sie wollen transparent sein. Ich glaube nicht, dass Sie definieren können die Weichzeichner-radius entweder.
Meine Entschuldigung
Entschuldigen Sie meine Unerfahrenheit mit Stackoverflow, aber ich dachte, ich würde versuchen, Ihnen zu helfen ein wenig.
Durch die folgenden link gepostet von Tom konnte ich in diesem code-block (ursprünglich in c#). So gesehen werden, wie dieser code ist nicht leicht verfügbar für die meisten Menschen, hier ist es:
Ergebnis
Einmal umgesetzt, wird dies Auswirkungen auf die ganze Fenster wie gezeigt:
Nach ein wenig Feintuning
Nach etwa 5 Minuten versucht zu kopieren Ihr design, das ich kam mit dieser:
XAML
Ich bin sicher, Sie könnten einen besseren job machen, der design als die, die ich habe. Es ist möglich, ändern Sie die Mischung Farbe einfach durch anpassen der Hintergrundfarbe (auf dem Fenster), und die Deckkraft der Ebene verändert werden können. Die XAML-mein design ist wie folgt:
Ich hoffe, das hilft!