Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML WPF多边形(三角形),仅在2/3边上有边框_C#_Wpf_Xaml - Fatal编程技术网

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

C# XAML WPF多边形(三角形),仅在2/3边上有边框,c#,wpf,xaml,C#,Wpf,Xaml,我在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" StrokeThi

我在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" />
<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>


这将在三角形的所有三条边上放置一个白色边框。但是,我只希望在两个边上有一个白色的边框(而不是左侧的平边)。在第三面,我不想要任何边界(这看起来像一个开放的三角形…有点像大于号>)。有办法做到这一点吗?我一直在玩弄笔划厚度,但运气不佳(不允许您指定每边)

一种方法是使用路径而不是多边形。比如:

<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>


您可能需要稍微调整端点,但这会使您非常接近您所追求的目标。

要创建具有部分笔划边的填充形状,请使用如下路径几何体:

    <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" />
<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>


这一点非常正确。非常感谢。您是否真的需要三角形透明填充,例如用于命中测试?那么被接受的答案就不是你所需要的。如果你不需要填充,那么为什么不使用一条多段线而不是一个只有两个点的多边形呢?我需要它是透明的,这是一个用户界面设计,客户一直在寻找,答案中的代码不会创建一个填充的三角形。我不是在寻找一个填充的形状,只是在某种程度上看起来像一个大于号的东西。缺少一侧的三角形。我使用了他们提供的路径代码,并根据我的需要对其进行了调整,它看起来完全符合我的需要。最好使用PathGeometry。