我得到了Canvas
一些Rectangles
不同width
但相同的东西height
。我画的Rectangles
是Canvas
实用,width
当我画时会实时计算。
有些Rectangles
有SolidColorBrush
,但休息应该像国际象棋棋盘:
我试图这样做:
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
设置中,您应该将其设置ViewportUnits
为Absolute
而不是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] 删除。
我来说两句