XAML WPF 多边形(三角形),仅在2/3个边上有边框。

4

我有一个在WPF/XAML中绘制的多边形,就像这样:

    <Polygon
     HorizontalAlignment="Right"
     VerticalAlignment="Top" Margin="0,0,0,0"
     Width="20"
     Height="50"
     Points="0 2,0,0 2,1"
     Fill="Transparent"
     Stretch="Fill" Stroke="#FFFFFF" StrokeThickness="1" />

这会在三角形的所有三边上放置一个白色边框。但是,我只想在两个边上(而不是左侧平面边)放置一个白色边框。在第三边上,我不想有任何边框(这看起来像一个开放的三角形......有点像大于号>)。有没有办法做到这一点?我尝试调整描边粗细,但并没有成功(它不允许您针对每个边指定大小)。


你真的需要三角形透明填充,例如用于命中测试吗?那么被接受的答案并不是你所需要的。如果你不需要填充,为什么不使用一个只有两个点的Polyline而不是Polygon呢? - Clemens
我需要它是透明的,这是为了一个客户所需的UI设计。 - swinkel
无论如何,答案中的代码并没有创建一个填充的三角形形状。 - Clemens
我并不是在寻找一个填充的形状,只是想要一些看起来像大于号的东西。一个缺少一条边的三角形。我使用了他们提供的路径代码,并根据我的需求进行了调整,它看起来正好符合我的要求。 - swinkel
最好使用PathGeometry。 - Clemens
2个回答

3
一种方法是使用路径而不是多边形。类似这样:

<Path Stroke="White">
    <Path.Data>
        <GeometryGroup>
            <LineGeometry StartPoint="10,10" EndPoint="30,35"></LineGeometry>
            <LineGeometry StartPoint="30,35" EndPoint="10,55"></LineGeometry>
        </GeometryGroup>
    </Path.Data>
</Path>

您可能需要微调端点,但这应该可以让您接近您想要的结果。


这非常准确。谢谢! - swinkel

3
为了创建一个具有部分描边边缘的填充形状,请使用类似于这样的 PathGeometry :
<Path StrokeThickness="1" Stroke="White" Fill="Transparent">
    <Path.Data>
        <PathGeometry>
            <PathFigure StartPoint="0,0">
                <PolyLineSegment Points="10,10 0,20"/>
                <LineSegment Point="0,0" IsStroked="False"/>
            </PathFigure>
        </PathGeometry>
    </Path.Data>
</Path>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接