2010-10-26 37 views

Respuesta

7

Intenta esto

// 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 respuesta aceptada es ahora obsoleto. Ahora puede usar:

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

Para lograr exactamente el mismo efecto que la respuesta aceptada.

+0

Agradable, funciona perfecto, gracias. –

+3

Obras. Solo una nota, requiere: usar System.Windows.Media.Effects; – Eternal21

6

@ La respuesta de Gleno me ayudó más. En mi caso, lo estaba usando para comentarios visuales sobre un elemento de formulario perdido. Para eliminar la sombra que utilicé:

myComboBox.ClearValue(EffectProperty); 

en un evento selectionChanged.

Espero que esto ayude a alguien. Tuve que buscar un poco.

Cuestiones relacionadas