12
votes

WPF: Ajouter un effet Dropshadow à un élément de Code-Derrière

Je pensais que ce serait quelque chose de simple mais jusqu'à présent, je n'ai rien trouvé. Comment faites-vous cela?


0 commentaires

3 Réponses :


9
votes

Essayez simplement cette

// 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; 


0 commentaires

54
votes

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
    };


1 commentaires

Travaux. Juste une note, elle nécessite: à l'aide de systèmes.windows.media.effects;



7
votes

La réponse de Gleno m'a le plus aidé. Dans mon cas, je l'utilisais pour obtenir des commentaires visuels sur un élément de forme manquée. Pour supprimer ensuite le DropShadow, j'ai utilisé:

myComboBox.ClearValue(EffectProperty);


0 commentaires