2017-07-28 59 views
1

现在,我画我的网格,这样刷:绘图网格图案的直线,而不是矩形

<VisualBrush x:Key="GridBrush" TileMode="Tile" 
     Viewport="0,0,60,60" ViewportUnits="Absolute" 
     Viewbox="0,0,60,60" ViewboxUnits="Absolute" > 
    <VisualBrush.Visual> 
     <Rectangle Stroke="Darkgray" StrokeThickness="1" Height="60" Width="60" 
      StrokeDashArray="5 3"/> 
    </VisualBrush.Visual> 
</VisualBrush> 

而且我得到这样的效果:

overalapping

的矩形这里重叠。

我一定要实现的事情是:

wanted result

回答

2

取而代之的是VisualBrush的,更好的使用这个DrawingBrush:

<DrawingBrush TileMode="Tile" 
       Viewport="0,0,60,60" ViewportUnits="Absolute" 
       Viewbox="0,0,60,60" ViewboxUnits="Absolute"> 
    <DrawingBrush.Drawing> 
     <GeometryDrawing Geometry="M0,0 L60,0 M0,0 L0,60"> 
      <GeometryDrawing.Pen> 
       <Pen Brush="DarkGray" Thickness="1" DashCap="Flat"> 
        <Pen.DashStyle> 
         <DashStyle Dashes="5,3"/> 
        </Pen.DashStyle> 
       </Pen> 
      </GeometryDrawing.Pen> 
     </GeometryDrawing> 
    </DrawingBrush.Drawing> 
</DrawingBrush> 

您也可以显式声明几何图形作为两个一组行:

<DrawingBrush TileMode="Tile" 
     Viewport="0,0,60,60" ViewportUnits="Absolute" 
     Viewbox="0,0,60,60" ViewboxUnits="Absolute"> 
    <DrawingBrush.Drawing> 
     <GeometryDrawing> 
      <GeometryDrawing.Geometry> 
       <GeometryGroup> 
        <LineGeometry EndPoint="0,60"/> 
        <LineGeometry EndPoint="60,0"/> 
       </GeometryGroup> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Pen> 
       <Pen Brush="DarkGray" Thickness="1" DashCap="Flat"> 
        <Pen.DashStyle> 
         <DashStyle Dashes="5,3"/> 
        </Pen.DashStyle> 
       </Pen> 
      </GeometryDrawing.Pen> 
     </GeometryDrawing> 
    </DrawingBrush.Drawing> 
</DrawingBrush> 
+0

这是完美的!谢谢! – cantdoanything33

+0

不客气。我已经改变了几何以获得更加对称的外观。 – Clemens