不透明度沿着WPF路径从透明变为完全不透明?

时间:2010-12-23 00:54:05

标签: wpf path opacity

我的路径以编程方式生成。我希望路径的开始是完全透明的,并且结束是完全不透明的,并且中间的所有内容都插入两个不透明度之间。所以路径应该从完全透明到完全不透明的路径逐渐消失。我怎样才能以最有效的方式实现这一目标?

到目前为止,通过将路径的不透明蒙板设置为:

,我得到了一个好的近似值。
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
    <GradientStop Color="#FF000000" Offset="1"/>
    <GradientStop Color="#00000000" Offset="0"/>
</LinearGradientBrush>

这遵循路径的一般趋势,因为它沿连接起点和终点的对角线形成一个梯度(我认为)。到目前为止,它在我的应用程序中看起来还不错,但我真的想要一种更好更精确的方法。

1 个答案:

答案 0 :(得分:1)

正如Meleak的评论所暗示的那样,你上面提到的渐变画笔可能是框架本身最好的。但是,当您以编程方式生成路径时,不是将所有段添加到单个路径,而是可以创建多个路径,逐渐降低不透明度。

但是,如果您没有多个细分,则可能会产生不透明度的“阶梯式”变化。另一种可能性是创建一个单一几何体,然后根据需要将其“分块”为多个单独的路径,使用PathGeometry.GetPointAtFractionLength方法计算每个“块”的起点和终点

http://msdn.microsoft.com/en-us/library/system.windows.media.pathgeometry.getpointatfractionlength.aspx

HTH