WPF/XAML中画布中的可重复形状

本文关键字:复形 布中 XAML WPF | 更新日期: 2023-09-27 18:29:45

我想画一个形状,它将是一个有许多圆孔的矩形。它看起来应该有点像连接四个游戏板。我想知道是否可以在没有任何代码的情况下绘制它。

到目前为止,我只做了一个元素:

    <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中对该元素进行多重处理?

WPF/XAML中画布中的可重复形状

可以使用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>