1

我试图找到IsFilled="False"在 PathGeometry 中使用的等价物,但对于Path Mini

左边是 Path Mini,右边是 PathGeometry

您可以看到下面的两条路径是相同的,除了IsFilled="False"第二条具有几何形状的路径<PathGeometry>.<PathGeometry.Figures>.<PathFigure>。这是所需的行为,但我想将它用于 Path Mini(即在第一个<Path>)。我查看了文档,但似乎找不到任何内容,因为 Path Mini 似乎不是数字的集合。

据我了解,所有形状/几何图形都将在运行时转换为迷你路径,那么有没有办法反映编译后的 XAML 以查看解释器如何将带有 PathGeometry 的路径渲染为迷你路径?

<Canvas Background="#FDB" Width="800" Height="600">

  <!-- this is the LEFT-HAND Path in the picture above -->
  <Path Canvas.Left="100" Canvas.Top="100"
     Stroke="#385D8A" StrokeThickness="2" StrokeLineJoin="Round" Fill="#4F81BD"
     Data="M0,0L102,0L102,102L0,102Z M46.15,49.01L-73.36,130.99L-96.42,-96.12L109.35,355.18">
  </Path>

  <!-- this is the RIGHT-HAND Path in the picture above -->
  <Path Canvas.Left="300" Canvas.Top="100" Stroke="#385D8A" StrokeThickness="2" StrokeLineJoin="Round" Fill="#4F81BD">
    <Path.Data>
      <GeometryGroup>
        <PathGeometry>
          <PathGeometry.Figures>
            <PathFigure StartPoint="0,0" IsClosed="True">
              <PathFigure.Segments>
                <LineSegment Point="102,0" />
                <LineSegment Point="102,102" />
                <LineSegment Point="0,102" />
              </PathFigure.Segments>
            </PathFigure>
          </PathGeometry.Figures>
        </PathGeometry>
        <PathGeometry>
          <PathGeometry.Figures>
            <PathFigure IsFilled="False" StartPoint="46.15,49.01">
              <PathFigure.Segments>
                <LineSegment Point="-73.36,130.99" />
                <LineSegment Point="-96.42,-96.12" />
                <LineSegment Point="109.35,355.18" />
              </PathFigure.Segments>
            </PathFigure>
          </PathGeometry.Figures>
        </PathGeometry>
      </GeometryGroup>
    </Path.Data>
  </Path>
</Canvas>
4

1 回答 1

2

path mini-lanuage 仅支持轮廓,因此必须将笔划转换为填充。如果您想要一像素宽的线条并且您对斜接或端盖不太挑剔,这很容易自己做。只需使用细长的矩形。使用最少的点数和处理交叉点的无限窄笔划的真正数学“增长”相当困难。但是,您可能可以使用 WPF 渲染引擎为您执行此操作,因为显然它已经可以执行此操作。

于 2011-02-17T22:59:00.743 回答