WPF / XAML中Canvas中的可重复形状

时间:2016-01-11 13:54:00

标签: c# .net wpf xaml canvas

我想画一个形状,这个形状是一个有很多圆孔的矩形。它应该看起来有点像连接四个游戏板。我想知道是否可以在没有任何代码隐藏帮助器或循环的情况下绘制它。

到目前为止,我已经完成了单个元素:

    <Canvas>
        <Path Fill="Red">
            <Path.Data>
                <CombinedGeometry GeometryCombineMode="Xor">
                    <CombinedGeometry.Geometry1>
                        <RectangleGeometry Rect="0, 0, 60, 60" />
                    </CombinedGeometry.Geometry1>
                    <CombinedGeometry.Geometry2>
                        <EllipseGeometry RadiusX="25" RadiusY="25" Center="30,30" />
                    </CombinedGeometry.Geometry2>
                </CombinedGeometry>
            </Path.Data>
        </Path>
    </Canvas> 

是否可以仅在XAML中复用此元素?

1 个答案:

答案 0 :(得分:1)

您可以使用VisualBrush作为Canvas的背景,并将几何图形指定为画笔的视觉效果。这是一个例子:

    <Canvas Width="200" Height="200">
      <Canvas.Background>
        <VisualBrush TileMode="Tile" Stretch="None" Viewport="0,0,0.35,0.35">
          <VisualBrush.Visual>
            <Path Fill="Red">
              <Path.Data>
                <CombinedGeometry GeometryCombineMode="Xor">
                  <CombinedGeometry.Geometry1>
                    <RectangleGeometry Rect="0, 0, 60, 60" />
                  </CombinedGeometry.Geometry1>
                  <CombinedGeometry.Geometry2>
                    <EllipseGeometry RadiusX="25" RadiusY="25" Center="30,30" />
                  </CombinedGeometry.Geometry2>
                </CombinedGeometry>
              </Path.Data>
            </Path>
          </VisualBrush.Visual>
        </VisualBrush>
      </Canvas.Background>
    </Canvas>