J'essaie de tracer une ligne avec des bords souples, quelle que soit la pente.Comment puis-je dessiner une ligne "douce" dans WPF (probablement en utilisant un LinearGradientBrush)?
Voici le code que j'ai jusqu'à présent:
<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>
Cela me semble logique, puisque la ligne est horizontale, et le gradient linéaire est vertical, les bords étant transparent et le milieu de la ligne étant vert solide.
Le résultat est agréable:
http://img15.imageshack.us/img15/4108/horizontalsoftline.png
zoomé afin que vous puissiez voir le gradient:
http://img225.imageshack.us/img225/5027/horizontalsoftlinezoomeb.png
Cependant, lorsque la ligne n'est plus horizontale, le gradient est calculé sur la base du rectangle de délimitation de la ligne plutôt que sur la géométrie de la ligne elle-même. Le résultat est une ligne oblique qui est ombrée verticalement, au lieu du gradient étant perpendiculaire à la ligne:
http://img183.imageshack.us/img183/7250/slantedsoftline.png
Est-ce que quelqu'un sait comment gère WPF bords souples? Je ne trouve rien sur Google ou MSDN, et je sais qu'il y a un moyen de le faire quelque part ...
Bonne question. J'ai essayé de comprendre comment faire des frontières avec des lignes comme ça. J'ai le sentiment que les réponses seront liées. –