C# XAML WPF多边形(三角形),仅在2/3边上有边框
我在WPF/XAML中绘制了一个多边形,如下所示: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
<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。