WPF:为代码隐藏中的元素添加一个drophadow效果

我觉得这会很简单,但到目前为止我什么都没发现。 你怎么做呢?

试试吧

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

接受的答案现在已经过时了。 现在您可以使用:

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

达到与接受的答案完全相同的效果。

@ Gleno的回答对我帮助最大。 在我的情况下,我使用它来对错过的表单项进行视觉反馈。 然后删除我使用的阴影:

 myComboBox.ClearValue(EffectProperty); 

在selectionChanged事件中。

希望这有助于某人。 我不得不搜索一下。