我刚刚开始在xaml中使用Geomectry Drawing,我偶然发现了这篇有趣的文章https://msdn.microsoft.com/en-us/library/aa480159.aspx。在这里,我发现以下绘图刷图给出了一个输出图。
<DrawingBrush x:Name="gridBackgroundBrush"
Viewport="0,0,10,10"
ViewportUnits="Absolute"
TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="Green" />
<GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="Green" />
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
从进一步阅读中,我发现M表示起点或移动到,L表示线,Z表示接近,但无法弄清楚这将给我两条线 - 一条水平线和一条垂线线?任何帮助理解这一点将受到高度赞赏。感谢。
答案 0 :(得分:3)
所以这里有一个快速分解你。
您的示例是DrawingBrush,如果您更熟悉CSS作为示例,则明确设置为TileMode="Tile"
,这相当于repeat-x / repeat-y。所以它被指示重复上下/左右重复。
如果单独翻译,Geometry Drawing
的两位是两个正方形,一个垂直拉伸,一个水平拉伸。虽然明确设置ViewportUnits
正在规定大小和位置,有效地重复列和行。
您的路径几何使用Path Markup Syntax绘制这些线条,如您所指出的那样。要获得更直观的解释,请更换每个刷子。
<GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="Red" />
<GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="Blue" />
......瞧!你有自己的重复线条背景,有效的垂直/水平列创建你的网格。请参阅链接以获取更多详细信息,并希干杯!
哦,你得到的问题from也有一个链接可以对它有所了解,但没有你想要的那么多,所以我没有标记这个副本。
<强>附录:强>
再澄清一点。虽然如果你想了解更多,我会按照文档链接,有人花了很多时间写作来回答这个问题。想想你是否有一个x,y网格,你正在绘制点。
假设您正在使用Adobe Illustrator或Blend之类的笔工具。您的第一次点击是根据容器的相对大小将M
设置为起点。然后你点击另一个地方......现在你有效地拥有L
行。
所以当我们看到:M0,0 L1,0
这是我们的第一个起跑线。在这种情况下,它是向右拐角延伸的顶角,因为在两点之间的线中没有另一个锚点。下一个集合充当锚点来告诉该线路改变它的方向以产生侧面,等等,直到你在Z
结束时为止。希望这会有所帮助,但我会先鼓励文档。
如果你想修补数字和学习,那么它们就是个别的:
<Path Data="M0,0 L1,0 1,0.1, 0,0.1Z"
Height="150" Width="150" Stroke="Red" />
<Path Data="M0,0 L0,1 0.1,1, 0.1,0Z"
Height="150" Width="150" Stroke="Blue" />
答案 1 :(得分:1)
当我使用GMaps V3时,我遇到了同样的事情。这是一个SVG path notation路径,允许您在WPF和浏览器上绘图。您可以在链接中找到完整的文档。