2013-05-24 8 views
10

Ich erstelle ein benutzerdefiniertes Fensterformular mit Blend. (Von AllowTransparency-True Einstellung)Hinzufügen von DropShadow zu einem benutzerdefinierten Fenster (Blend)

Ich habe den Entwurf fertig und es funktioniert ziemlich gut. Jetzt möchte ich den Schatteneffekt hinzufügen. (DropShadowEffect)

Ich kann das nicht tun, weil das Fenster selbst ausgeblendet ist, so dass der Effekt nicht angezeigt wird. Und es funktioniert nicht auf dem Hauptgitter. Kein Glück, eine Grenze hinzuzufügen und den Schatten zu geben.

+0

Diese [SO Post] (http://stackoverflow.com/questions/3372303/dropshadow-for-wpf-borderless-window) wird Ihnen wahrscheinlich helfen. – DHN

+0

@DHN Danke für den Link, aber das OP sagte, er wolle nicht die 'AllowTransparency'. Und der akzeptierte Antwortcode basiert auf einer bestimmten DLL, die keine Kontrolle gibt. Außerdem möchte ich eine Mischlösung. – xperator

+0

Ok, es war nur ein kurzer Schuss. Nun, ich würde vorschlagen, dass Sie das erste sichtbare Element nehmen und ihm einen "DropShadow" -Effekt geben. Aber ich denke du hast es schon versucht. ; o) – DHN

Antwort

15

Ok, ich habe die Antwort gefunden. (Mit Hilfe von diesem page)

Zuerst stellen Sie die AllowTransparency des Fensters zu True. Dann ändern Sie es Background-No Brush

Lassen Sie uns sagen Sie so etwas wie dieses: (Ignorieren Sie das Rechteck und Borders)

enter image description here

dann die Background auf weiße Farbe des Grid ändern. Klicken Sie nun auf Ihr Fenster und fügen Sie etwa 15 Pixel zu seiner Breite und Höhe hinzu.

enter image description here

Und die Schatteneinstellungen ändern:

enter image description here

Jetzt können Sie den Schatten :)

enter image description here

Ich glaube, Sie auf die Idee sehen bekam, wie dies Arbeiten. Denken Sie daran, dass Sie mit den Einstellungen Fensterhöhe/-gewicht und Schatten weiter spielen können, um einen besseren Effekt zu erzielen.

+0

Ich kann sehen, dass Sie die Lösung schließlich gefunden haben :) +1 –

Verwandte Themen