无论坡度如何,我都试图画一条边缘柔软的线。
这是我到目前为止的代码:
<Line HorizontalAlignment="Stretch" VerticalAlignment="Center"
Stretch="Uniform" StrokeThickness="5" X1="0" Y1="0" X2="1" Y2="0">
<Shape.Stroke>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Transparent" Offset="0" />
<GradientStop Color="Green" Offset="0.5" />
<GradientStop Color="Transparent" Offset="1" />
</LinearGradientBrush>
</Shape.Stroke>
</Line>
这对我来说很有意义,因为线是水平的,而线性渐变是垂直的,边缘是透明的,而线的中间是纯绿色。
结果令人愉悦:
放大后可以看到渐变: http://img225.imageshack.us/img225/5027/horizo ntalsoftlinezoomeb.png
但是,当线条不再水平时,梯度是基于线条的边界矩形计算的,而不是线条本身的几何形状。结果是一条垂直着色的斜线,而不是垂直于该线的渐变:
有谁知道 WPF 如何处理软边缘?我在 Google 或 MSDN 上找不到任何东西,而且我知道有办法以某种方式做到这一点......