如何在 WPF 中的路径对象中设置不同的描边属性

发布于 2024-09-11 08:30:35 字数 362 浏览 8 评论 0原文

我有一个路径形状,我想组合具有不同线条粗细的线条? StrokeThickness 属性是在 Path 对象上设置的,因此我无法针对不同的线更改它。如果我想改变线条颜色,也会出现同样的问题。

我想这样做的原因是这样我可以画一个箭头。 Charles Petzold 箭头 http://www.charlespetzold.com/blog/2007/04/191200.html 对我不起作用。如果我的线是虚线,封闭的箭头就会画得很奇怪。

我想出了一种方法,就是在我的路径/线的末端结合一个新的短线几何体,它比我原来的路径/线更粗,并且有 TriangleLineCap,瞧,给自己一个箭头。但我无法组合具有不同线条粗细和虚线类型等的几何图形。

有什么想法吗?

I have a path shape that I would like to combine lines that have different line thicknesses?
The StrokeThickness property is set on the Path object so I cannot change it for different lines. This same issue would arise if I wanted to change my line color.

The reason I want to do this is so that I can draw an arrowhead. Charles Petzold arrowheads http://www.charlespetzold.com/blog/2007/04/191200.html don't work for me. If my line is dashed the closed arrowhead draws weirdly.

I figured a way to do it was to combine at the end of my path/line a new short line geometry that was thicker than the my original path/line and had TriangleLineCap, voila, got myself an arrowhead. But I can't combine geometries that have different line thicknesses and dashed types, etc.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只需在面板中使用多个 Path 对象(例如 Canvas 或 Grid),它们将在彼此之上绘制:

<Grid>
    <Path Stroke="Blue" StrokeThickness="2">
        <Path.Data>
            <EllipseGeometry Center="20 20" RadiusX="10" RadiusY="10" />
        </Path.Data>
    </Path>
    <Path Stroke="Green" StrokeThickness="1" StrokeDashArray="1 2">
        <Path.Data>
            <LineGeometry StartPoint="10 20" EndPoint="30 20"/>
        </Path.Data>
    </Path>
</Grid>

Just use multiple Path objects in a panel like a Canvas or a Grid where they will draw on top of each other:

<Grid>
    <Path Stroke="Blue" StrokeThickness="2">
        <Path.Data>
            <EllipseGeometry Center="20 20" RadiusX="10" RadiusY="10" />
        </Path.Data>
    </Path>
    <Path Stroke="Green" StrokeThickness="1" StrokeDashArray="1 2">
        <Path.Data>
            <LineGeometry StartPoint="10 20" EndPoint="30 20"/>
        </Path.Data>
    </Path>
</Grid>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文