我的路径以编程方式生成。我希望路径的开始是完全透明的,并且结束是完全不透明的,并且中间的所有内容都插入两个不透明度之间。所以路径应该从完全透明到完全不透明的路径逐渐消失。我怎样才能以最有效的方式实现这一目标?
到目前为止,通过将路径的不透明蒙板设置为:
,我得到了一个好的近似值。<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#FF000000" Offset="1"/>
<GradientStop Color="#00000000" Offset="0"/>
</LinearGradientBrush>
这遵循路径的一般趋势,因为它沿连接起点和终点的对角线形成一个梯度(我认为)。到目前为止,它在我的应用程序中看起来还不错,但我真的想要一种更好更精确的方法。
答案 0 :(得分:1)
正如Meleak的评论所暗示的那样,你上面提到的渐变画笔可能是框架本身最好的。但是,当您以编程方式生成路径时,不是将所有段添加到单个路径,而是可以创建多个路径,逐渐降低不透明度。
但是,如果您没有多个细分,则可能会产生不透明度的“阶梯式”变化。另一种可能性是创建一个单一几何体,然后根据需要将其“分块”为多个单独的路径,使用PathGeometry.GetPointAtFractionLength方法计算每个“块”的起点和终点
HTH