Wpf性能问题:画笔上的不透明度与元素上的不透明度

Nav*_*ani 8 c# wpf performance xaml

我想知道为什么设置Brush.Opacity元素的值而不是设置元素的Opacity属性对性能更好.

来自MSDN:修改元素的Opacity属性可能导致WPF创建临时表面.

但是我无法理解什么是临时表面
可以解释一下吗?谢谢.

Tim*_*ers 10

如果创建了一个临时曲面,则表示为该元素创建了一个新的位图,该元素的内容将呈现给它,然后使用提供的不透明度其合成到父元素的曲面上.

否则,如果您只是设置画笔的不透明度,它可以绕过此步骤并直接绘制到父元素的曲面.

创建一个新的位图并合成它比直接绘图更昂贵.