自定义WPF EndLineCap,StartLineCap& LineJoin或新附加属性

时间:2010-09-04 21:42:51

标签: c# .net wpf controls attached-properties

只是想知道是否有人知道如何实现额外/自定义EndLineCap,StartLineCap& LineJoin属性?

简而言之,LineJoin =“Round”是我想要的,但我需要角度的两侧都是平滑的 - 而不仅仅是更宽的角度侧。

此外,我不想只是圆形的EndLineCap和StartLineCap,而是在每一端都要有一个球(例如,每端的圆圈,直径是线条的两倍)。

我可能无法通过附加属性实现此功能,但我不知道从哪里开始。

2 个答案:

答案 0 :(得分:3)

我知道这是一个老问题,但在研究类似的东西时我发现了这个链接。它可能对其他人有用。 Custom line caps in WPF

答案 1 :(得分:1)

我不相信你可以做你所要求的。在WPF中,Line Caps的实现水平非常低,而且似乎很少有自定义的可能性。

WPF公开的最低级别图形API是DrawingContext。这提供了DrawLine之类的方法,它使用Pen对象来指定应如何绘制LineCaps。您选择的LineCaps仅限于PenLineCap枚举中公开的内容 - 它不提供“自定义”选项。

说了这么多,可以通过修改几何中的路径数据来模拟自定义行上限。这个answer可能会给你一些提示。