勾配に関係なく、ソフトエッジで線を引こうとしています。
これまでのコードは次のとおりです。
<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がソフトエッジを処理する方法を知っている人はいますか? Google や MSDN では何も見つかりませんが、何らかの方法でこれを行う方法があることは知っています...