如何在WPF中绘制到DrawingContext时应用阴影效果?

Rom*_*kov 9 wpf effect drawingcontext

我正在绘制一个DrawingContext,我想对绘图的一部分应用阴影效果.目前我在a中创建相关部分DrawingGroup并应用a BitmapEffect,但这没有效果:

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);
Run Code Online (Sandbox Code Playgroud)

这将layer正确地绘制所有内容,但没有投影效果.

我做错了什么/如何在DrawingContext中对一堆基元应用投影?

Pau*_*ell 3

BitmapEffect是 .NET 3.5 之前的旧属性(他们使用 CPU 渲染效果)。该属性在 4.0 中无效。

在 4.0 中,您应该使用Effect属性,它使用像素着色器。

DrawingGroup但是似乎没有效果属性 - 听起来您可能需要在父 UI 元素上设置效果