【问题标题】:[WPF]How to draw a grid on canvas?[WPF]如何在画布上绘制网格?
【发布时间】:2014-10-29 16:22:23
【问题描述】:

如何在继承自 Canvas - 系统 ui 元素的自定义画布上绘制以下图表作为背景?

感谢任何有用的链接。

【问题讨论】:

    标签: c# .net wpf wpf-controls wpf-4.0


    【解决方案1】:

    您可以将Canvas.Background 设置为一些DrawingBrush。这个画笔只需要渲染一个矩形(通过使用一些RectangleGeometry)。由于支持TileMode,我们可以沿水平轴和垂直轴重复这个矩形,并为您制作完整的网格:

    <Canvas>
        <Canvas.Background>
           <DrawingBrush TileMode="Tile" Viewport="-10,-10,40,40" 
                                         ViewportUnits="Absolute">
              <DrawingBrush.Drawing>
                 <GeometryDrawing>                 
                    <GeometryDrawing.Geometry>
                       <RectangleGeometry Rect="0,0,50,50"/>
                    </GeometryDrawing.Geometry>
                    <GeometryDrawing.Pen>
                       <Pen Brush="Gray" Thickness="1"/>
                    </GeometryDrawing.Pen>
                 </GeometryDrawing>
              </DrawingBrush.Drawing>
           </DrawingBrush>
        </Canvas.Background>
     </Canvas>
    

    请注意,您可以在 Canvas 之外绘制一些内容,但其背景始终位于其区域内。所以你需要为你的画布正确设置尺寸。

    【讨论】:

    • @Shan 不客气,如果有帮助,请考虑接受答案。
    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2020-04-22
    • 2013-01-24
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多