Ho pensato che sarebbe stato qualcosa di semplice ma finora non ho trovato nulla. Come si fa?WPF: aggiungi un effetto dropshadow a un elemento dal code-behind
9
A
risposta
7
solo provare questo
// 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 risposta accettata è ormai obsoleto. Ora è possibile utilizzare:
UIElement uie = ...
uie.Effect =
new DropShadowEffect
{
Color = new Color {A = 255, R = 255, G = 255, B = 0},
Direction = 320,
ShadowDepth = 0,
Opacity = 1
};
Per ottenere lo stesso effetto della risposta accettata.
6
@ La risposta di Gleno mi ha aiutato di più. Nel mio caso lo stavo usando per un feedback visivo su un elemento del modulo mancato. Per rimuovere il dropshadow utilizzato:
myComboBox.ClearValue(EffectProperty);
in un evento selectionChanged.
Spero che questo aiuti qualcuno. Ho dovuto cercare un po '.
Bello, funziona perfettamente, grazie. –
Opere. Solo una nota, richiede: using System.Windows.Media.Effects; – Eternal21