I'm drawing into a DrawingContext
, and I'd like to apply a drop shadow effect to part of the drawing. At the moment I create the relevant parts in a DrawingGroup
and apply a BitmapEffect
, but this has no effect:
var layer = new DrawingGroup();
using (var lcontext = layer.Open())
{
// draw stuff in lcontext
}
layer.BitmapEffect = new DropShadowBitmapEffect { Color = Colors.Black, ShadowDepth = 3, Opacity = 0.5 };
context.DrawDrawing(layer);
This draws everything inside the layer
correctly, but without the drop shadow effect.
What am I doing wrong / how else might I apply a drop shadow to a bunch of primitives in a DrawingContext?
BitmapEffect
is an old property (they used CPU-rendered effects) from pre .NET 3.5. The property has no effect in 4.0.
In 4.0 you should use Effect
property, which uses Pixel Shaders.
DrawingGroup
however doesn't appear to have an effect property - it sounds like you might need to set the effect on the parent UI element instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With