如果我在WPF中具有Opacity = 0的DrawingVisual,是否足以绘制它?我们在画布上有数百个DrawingVisuals,并且当前正在不显示的视觉上设置Opacity = 0,并且我想确保以Opacity = 0渲染DrawingVisual时不会影响渲染性能。
更新:我通过测试发现,不透明度= 0时会有开销,但是由于DrawingVisual没有Visibility属性,所以我不知道您如何告诉它不显示,除非您实际上将其从视觉中删除树,因此欢迎提出任何建议。
最佳答案
最有效的方法似乎是在测试中设置不透明度。另一个简单的方法是重新绘制受影响的视觉效果。
using (DrawingContext dc = RenderOpen()) {} //Hide this visual
然后在它们再次变得可见时重画。
渲染空白的drawingcontext似乎非常快。但是,如果您具有复杂的视觉效果,则当它们变得可见时,可能需要一些时间来重新渲染它们。