2013-05-24 20 views
10

Sto creando un modulo Finestra personalizzato utilizzando Miscela. (impostando AllowTransparency a)Aggiungere DropShadow a una finestra personalizzata (miscela)

Ho finito il disegno e funziona piuttosto bene. Ora voglio aggiungere l'effetto Shadow ad esso. (DropShadowEffect)

Non riesco a farlo perché la Finestra stessa è nascosta, quindi l'effetto non verrà visualizzato. E non funziona sulla griglia principale. Non ho fortuna con l'aggiunta di un bordo e dare l'ombra ad esso.

+0

Questo [post SO] (http://stackoverflow.com/questions/3372303/dropshadow-for-wpf-borderless-window) probabilmente ti aiuterà. – DHN

+0

@DHN Grazie per il link, ma l'OP ha detto che non vuole 'AllowTransparency'. E il codice di risposta accettato è basato su una certa dll che non dà alcun controllo. Inoltre, voglio una soluzione Blend. – xperator

+0

Ok, era solo un colpo veloce. Bene, ti suggerirei di prendere il primo elemento visibile e dargli un effetto 'DropShadow'. Ma immagino che tu ci abbia già provato. ; o) – DHN

risposta

15

Ok ho trovato la risposta. (Con un po 'di aiuto da questo page)

Prima di tutto, impostare AllowTransparency della finestra su True. Poi cambia è Background-No Brush

Diciamo che avere qualcosa di simile: (Ignora il rettangolo e frontiere)

enter image description here

quindi modificare il colore del Background a White griglia. Ora fai clic sulla finestra e aggiungi circa 15 pixel alla larghezza e all'altezza.

enter image description here

e modificare le impostazioni Ombra:

enter image description here

Ora si può vedere l'ombra :)

enter image description here

penso che è venuta l'idea di come questo è lavoro. Ricorda che puoi ancora giocare con l'altezza/peso della finestra e le impostazioni dell'ombreggiatura per ottenere un effetto migliore.

+0

Posso vedere che hai trovato la soluzione dopotutto :) +1 –

Problemi correlati