2010-10-26 3 views

Répondre

7

juste essayer ce

// Get a reference to the Button. 
Button myButton = new Button(); 

// Initialize a new DropShadowBitmapEffect that will be applied 
// to the Button. 
DropShadowBitmapEffect myDropShadowEffect = new DropShadowBitmapEffect(); 
// Set the color of the shadow to Black. 
Color myShadowColor = new Color(); 
myShadowColor.ScA = 1; 
myShadowColor.ScB = 0; 
myShadowColor.ScG = 0; 
myShadowColor.ScR = 0; 
myDropShadowEffect.Color = myShadowColor; 

// Set the direction of where the shadow is cast to 320 degrees. 
myDropShadowEffect.Direction = 320; 

// Set the depth of the shadow being cast. 
myDropShadowEffect.ShadowDepth = 25; 

// Set the shadow softness to the maximum (range of 0-1). 
myDropShadowEffect.Softness = 1; 
// Set the shadow opacity to half opaque or in other words - half transparent. 
// The range is 0-1. 
myDropShadowEffect.Opacity = 0.5; 

// Apply the bitmap effect to the Button. 
myButton.BitmapEffect = myDropShadowEffect; 
43

La réponse acceptée est maintenant obsolète. Maintenant, vous pouvez utiliser:

UIElement uie = ... 
uie.Effect = 
    new DropShadowEffect 
    { 
     Color = new Color {A = 255, R = 255, G = 255, B = 0}, 
     Direction = 320, 
     ShadowDepth = 0, 
     Opacity = 1 
    }; 

Pour obtenir exactement le même effet que la réponse acceptée.

+0

Nice, fonctionne parfaitement, merci. –

+3

Fonctionne. Juste une note, il faut: using System.Windows.Media.Effects; – Eternal21

6

@ La réponse de Gleno m'a aidé le plus. Dans mon cas, je l'utilisais pour un retour visuel sur un objet de formulaire manqué. Pour supprimer ensuite le dropshadow j'ai utilisé:

myComboBox.ClearValue(EffectProperty); 

dans un événement selectionChanged.

Espérons que cela aide quelqu'un. J'ai dû chercher un peu.

Questions connexes