我试图画一条有柔和边缘的线,而不管其斜率如何。
这是我目前的代码:
<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/horizontalsoftlinezoomeb.png
然而,当线不再水平时,渐变是基于线的外接矩形计算的,而不是基于线本身的几何图形。结果是一条斜线,其垂直着色,而渐变则与线垂直方向不同:
有人知道WPF如何处理软边缘吗?我在谷歌和MSDN上找不到相关信息,但我知道肯定有方法可以做到这一点......