问题在于:我们有一个应用程序在名为Display的控件中显示实时图像。在Display控件的实时图像上可能会有(可能是交互式的)图层(Display
控件基本上是一个带有底部的LiveImageLayer
的网格)。大多数可用的图层由线图形组成,不会遮挡图像。某些图层由标准的WPF控件(如按钮或滑块)组成(使用更改后的模板,以便使用线条图形进行渲染)。有些图层甚至直接使用DrawingContext绘制。在不使用效果的情况下在WPF中创建阴影
为了提高活动噪声图像上层图形的可见性和可读性,我们试图将DropShadow
效果分配给图层。从视觉角度来看,这非常有效。然而,从性能角度来看,这是非常糟糕的。由于ImageLayer的快速更新(高达60Hz),DropShadow
效果被重新计算为具有图像更新频率的所有图层(即使图层本身不会更改)。
对于每个图层,我们都可以手动实现老式阴影(下面的黑色笔和相同图形,移到右下角)。如果没有更好的方法,我们会实际做到。
所以,我的问题是:是否有任何自动或半自动的方式来实现这样的影子?我想在实际图层下面创建一个移动的矩形,该刷子设置为实际图层的视觉刷子。但是,我发现没有办法(除了效果)将视觉刷重新着色为黑色。
任何想法?
你好,谢谢你的回复。不幸的是,这并不能解决我们的问题 - 我们需要在复杂的几何图形上创建阴影(例如,想象圆圈(未填充),尺寸和显示其直径的文本)。 – zvrastil