WPF图画在帆布盘区背景的色的网格线

 Timma2116 发布于 2023-02-08 14:05

类似于方格纸的外观,我想在画布的背景上绘制不同颜色的直线以形成网格.以下代码适用于仅绘制红线.我还想绘制一些蓝线和灰线.这意味着我还需要两组线,到目前为止,我还无法解决绘制新的其他颜色线的问题.




    
        
            
                
                    
                        
                            
                                
                                
                            
                        
                        
                            
                        
                    
                
            
        
    



重申...这段代码正在做我想要的单色.但我也想添加不同颜色的线条.

1 个回答
  • 您可以将多个画布添加到根画布,每个画布都有自己的背景笔:

    <ScrollViewer HorizontalScrollBarVisibility="Visible">
        <Canvas  >
            <Canvas   >
                <Canvas.Background>
                    <DrawingBrush Stretch="None" TileMode="Tile"
                              Viewport="0,0 10,10" ViewportUnits="Absolute">
                        <DrawingBrush.Drawing>
                            <GeometryDrawing>
                                <GeometryDrawing.Geometry>
                                    <GeometryGroup>
                                        <LineGeometry StartPoint="0,0" EndPoint="0,10"/>
                                        <LineGeometry StartPoint="0,0" EndPoint="10,0"/>
                                    </GeometryGroup>
                                </GeometryDrawing.Geometry>
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="1" Brush="DarkGray"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Canvas.Background>
            </Canvas>
            <Canvas   >
                <Canvas.Background>
                    <DrawingBrush Stretch="None" TileMode="Tile"
                              Viewport="0,0 50,50" ViewportUnits="Absolute">
                        <DrawingBrush.Drawing>
                            <GeometryDrawing>
                                <GeometryDrawing.Geometry>
                                    <GeometryGroup>
                                        <LineGeometry StartPoint="0,0" EndPoint="0,50"/>
                                        <LineGeometry StartPoint="0,0" EndPoint="50,0"/>
                                    </GeometryGroup>
                                </GeometryDrawing.Geometry>
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="1" Brush="Blue"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Canvas.Background>
            </Canvas>
            <Canvas   >
                <Canvas.Background>
                    <DrawingBrush Stretch="None" TileMode="Tile"
                              Viewport="0,0 100,100" ViewportUnits="Absolute">
                        <DrawingBrush.Drawing>
                            <GeometryDrawing>
                                <GeometryDrawing.Geometry>
                                    <GeometryGroup>
                                        <LineGeometry StartPoint="0,0" EndPoint="0,100"/>
                                        <LineGeometry StartPoint="0,0" EndPoint="100,0"/>
                                    </GeometryGroup>
                                </GeometryDrawing.Geometry>
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="1" Brush="Red"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Canvas.Background>
            </Canvas>
        </Canvas>
    </ScrollViewer>
    

    或者,你可以使用VisualBrush,它构造一个刷子UIElement.因此,您可以Grid使用Rectangles内部或任何类似方法制作画布背景:

    <Canvas> 
        <Canvas.Background>
            <VisualBrush>
                <VisualBrush.Visual>
                    <Grid>
                        <Rectangle  >
                            <Rectangle.Fill>
                                <DrawingBrush Stretch="None" TileMode="Tile"
                                    Viewport="0,0 10,10" ViewportUnits="Absolute">
                                    <DrawingBrush.Drawing>
                                        <GeometryDrawing>
                                            <GeometryDrawing.Geometry>
                                                <GeometryGroup>
                                                    <LineGeometry StartPoint="0,0" EndPoint="0,10"/>
                                                    <LineGeometry StartPoint="0,0" EndPoint="10,0"/>
                                                </GeometryGroup>
                                            </GeometryDrawing.Geometry>
                                            <GeometryDrawing.Pen>
                                                <Pen Thickness="1" Brush="DarkGray"/>
                                            </GeometryDrawing.Pen>
                                        </GeometryDrawing>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                        <Rectangle  >
                            <Rectangle.Fill>
                                <DrawingBrush Stretch="None" TileMode="Tile"
                                    Viewport="0,0 50,50" ViewportUnits="Absolute">
                                    <DrawingBrush.Drawing>
                                        <GeometryDrawing>
                                            <GeometryDrawing.Geometry>
                                                <GeometryGroup>
                                                    <LineGeometry StartPoint="0,0" EndPoint="0,50"/>
                                                    <LineGeometry StartPoint="0,0" EndPoint="50,0"/>
                                                </GeometryGroup>
                                            </GeometryDrawing.Geometry>
                                            <GeometryDrawing.Pen>
                                                <Pen Thickness="1" Brush="Blue"/>
                                            </GeometryDrawing.Pen>
                                        </GeometryDrawing>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                        <Rectangle  >
                            <Rectangle.Fill>
                                <DrawingBrush Stretch="None" TileMode="Tile"
                                    Viewport="0,0 100,100" ViewportUnits="Absolute">
                                    <DrawingBrush.Drawing>
                                        <GeometryDrawing>
                                            <GeometryDrawing.Geometry>
                                                <GeometryGroup>
                                                    <LineGeometry StartPoint="0,0" EndPoint="0,100"/>
                                                    <LineGeometry StartPoint="0,0" EndPoint="100,0"/>
                                                </GeometryGroup>
                                            </GeometryDrawing.Geometry>
                                            <GeometryDrawing.Pen>
                                                <Pen Thickness="1" Brush="Red"/>
                                            </GeometryDrawing.Pen>
                                        </GeometryDrawing>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Grid>
                </VisualBrush.Visual>
            </VisualBrush>
        </Canvas.Background>
    </Canvas>
    

    2023-02-08 14:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有