XAML性能:设置画笔的Alpha通道与FrameworkElement的不透明度

Nei*_*ell 6 .net silverlight wpf performance xaml

对于需要半透明白色的给定XAML布局(在这种情况下提供类似玻璃的效果),哪种方法更适合设置透明度以及为什么?:

  1. 设置画笔的Alpha通道.例如#12FFFFFF
  2. 设置FrameworkElement本身的不透明度,使画笔保持100%白色.

另外,WPF(4.0)和Silverlight的答案有何不同?

Ken*_*art 7

直接来自MSDN:

刷子的不透明度与元素的不透明度

使用"画笔"设置元素的"填充"或"笔触"时,最好设置"Brush.Opacity"值,而不是设置元素的"不透明度"属性.修改元素的Opacity属性可能会导致WPF创建临时曲面.

但无论如何,请注意您仍然会使渲染管道做更多的工作.不透明度意味着必须组合来自多个源的像素才能得出最终的RGB值.因此,如果完全可以完全去除透明度,而是使用不透明的刷子来模拟透明度,那么你应该这样做.听起来在你的情况下这可能是不可能的,但它通常可以.