【问题标题】:XAML WPF Polygon (triangle) with border on 2/3 sides onlyXAML WPF 多边形(三角形),仅 2/3 边有边框
【发布时间】:2017-01-04 14:32:55
【问题描述】:

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

这会在三角形的所有三个边上放置一个白色边框。但是,我只想要两侧的白色边框(不是左侧,平坦的一侧)。在第三边,我根本不需要边框(这看起来像一个开放的三角形......有点像大于号>)。有没有办法做到这一点?我玩过笔画粗细,但没有运气(不允许你指定每边)。

【问题讨论】:

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

标签: c# wpf xaml


【解决方案1】:

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

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

您可能需要稍微调整端点,但它应该可以让您非常接近您所追求的。

【讨论】:

  • 这是正确的。谢谢!
【解决方案2】:

要创建带有部分描边的填充形状,请使用如下所示的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2013-03-20
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多