问题如下:我们有一个应用程序,它在一个名为 Display 的控件中显示实时图像。显示控件内的实时图像顶部可以有(可能是交互式的)层(Display
控件基本上是LiveImageLayer
底部的网格)。大多数可用图层由线条图形组成,不会遮挡图像。某些层由标准 WPF 控件组成,例如按钮或滑块(使用更改的模板,因此它们使用线条图形呈现)。有些图层甚至直接使用 DrawingContext 绘制。
为了提高实时嘈杂图像上图层图形的可见性和可读性,我们尝试对DropShadow
图层进行评估。从视觉的角度来看,这非常有效。但是,从性能的角度来看,它非常糟糕。由于 ImageLayer 的快速更新(高达 60Hz),DropShadow
所有图层的效果都以图像更新频率重新计算(即使图层本身没有改变)。
我们可以为每一层手动实现老式的阴影(下面是黑色笔刷的相同图形,向右下方移动)。如果没有更好的方法,我们实际上会这样做。
所以,我的问题是:有没有自动或半自动的方式来实现这种阴影?我想在实际图层下方创建移位矩形,该笔刷设置为实际图层的视觉笔刷。但是,我发现没有办法(除了效果)将视觉画笔重新着色为黑色。
有任何想法吗?