如何在画布上用画笔绘制棋盘图案?

核甜

我得到了Canvas一些Rectangles不同width但相同的东西height我画的RectanglesCanvas实用,width当我画时会实时计算。

有些RectanglesSolidColorBrush,但休息应该像国际象棋棋盘:

在此处输入图片说明

我试图这样做:

private static Brush CreateBrush()
{

    // Create a DrawingBrush
    var blackBrush = new DrawingBrush();
    // Create a Geometry with white background

    // Create a GeometryGroup that will be added to Geometry
    var gGroup = new GeometryGroup();
    gGroup.Children.Add(new RectangleGeometry(new Rect(0, 0, 10, 10)));
    gGroup.Children.Add(new RectangleGeometry(new Rect(10, 10, 10, 10)));
    // Create a GeomertyDrawing
    var checkers = 
        new GeometryDrawing(new SolidColorBrush(Colors.Black), null, gGroup);

    var checkersDrawingGroup = new DrawingGroup();

    checkersDrawingGroup.Children.Add(checkers);

    blackBrush.Drawing = checkersDrawingGroup;

    // Set Viewport and TileMode
    blackBrush.Viewport = new Rect(0, 0, 0.5, 0.5 );
    blackBrush.TileMode = TileMode.Tile;

    return blackBrush; 
}

至于Rectangles有不同的大小,相同的DrawingBrush看起来不同的不同Rectangles-它不是重复,以填补,但舒展。

据我了解,问题出在blackBrush.Viewport = new Rect(0, 0, 0.5, 0.5 );-我应该Viewports根据每个参数设置不同的值Rectangle width,但这对我来说是不可接受的。我需要对所有具有不同大小和纹理的矩形使用一支笔刷,看起来应该像一张图片-X和Y的比例相同,但是它可以一次重复很多次Rectangle

也许还有另一种画笔类型或其他方式可以解决此问题?

随意询问,如果我的帖子不清楚,也对我的英语感到抱歉。

为我需要添加图片:(在此处输入图片说明这与宽度无关,与纹理填充有关)

国王王

问题出在Viewport设置中,您应该将其设置ViewportUnitsAbsolute而不是RelativeToBoundingBox(默认情况下):

//we have to use a fixed size for the squares
blackBrush.Viewport = new Rect(0, 0, 60, 60);
blackBrush.Viewport.ViewportUnits = BrushMappingMode.Absolute;

这是显示使用纯XAML的检查板的示例:

<Grid>
    <Grid.Background>
        <DrawingBrush TileMode="Tile" Viewport="0,0,60,60" 
                                      ViewportUnits="Absolute">
            <DrawingBrush.Drawing>
                <GeometryDrawing Brush="Black" 
                    Geometry="M5,5 L0,5 0,10 5,10 5,5 10,5 10,0 5,0 Z"/>
            </DrawingBrush.Drawing>
        </DrawingBrush>            
    </Grid.Background>
</Grid>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在html画布上绘制人字形图案

来自分类Dev

如何在画布上绘制大量点(具有规则图案)?

来自分类Dev

绘制全屏棋盘图案?

来自分类Dev

如何在c中制作棋盘图案?

来自分类Dev

如何在画布上填充图案并沿着形状弯曲?

来自分类Dev

如何在画布上随机绘制对象

来自分类Dev

[WPF]如何在画布上绘制网格?

来自分类Dev

如何在画布上绘制RelativeLayout?

来自分类Dev

如何在画布上绘制读取JSON?

来自分类Dev

如何在画布元素上绘制视频?

来自分类Dev

Java:如何在画布上绘制?

来自分类Dev

用画布制作棋盘

来自分类Dev

如何在Android画布上绘制局部圆角矩形?

来自分类Dev

如何在Android画布上绘制圆角多边形?

来自分类Dev

如何在画布上重新绘制以调整大小而不会模糊?

来自分类Dev

如何在画布上绘制平滑的椭圆形

来自分类Dev

如何在画布上绘制绘图线动画

来自分类Dev

如何在画布绘制的元素上添加材质样式的阴影?

来自分类Dev

如何在画布上绘制具有径向渐变的圆?

来自分类Dev

如何在多个画布HTML5上绘制圆?

来自分类Dev

如何在画布上绘制多个半透明矩形?

来自分类Dev

如何在HTML画布上绘制位图文件?

来自分类Dev

如何在画布上绘制内嵌svg(在DOM中)?

来自分类Dev

如何在画布上绘制运动图像的多条路径

来自分类Dev

如何在不透明的画布上绘制?

来自分类Dev

如何在Flutter中的画布上绘制小部件?

来自分类Dev

如何在画布上分层绘制图像?

来自分类Dev

如何在画布上绘制带边框的矩形?

来自分类Dev

如何在DearPyGui画布上绘制PIL图像?