Я пытаюсь нарисовать линию с мягкими краями, независимо от наклона.
Вот код, который у меня есть:
<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, и я знаю, что есть способ сделать это каким-то образом ...