gpt4 book ai didi

c# - 使用 DrawingBrush 创建两条垂直线

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:16 24 4
gpt4 key购买 nike

我正在尝试创建一个 50 x 50 的正方形,其中矩形的一半是白色,另一半是黑色(线条垂直而不是水平)。我有以下代码,但它没有按预期填充矩形。如何将其设为 50% 白色和 50% 黑色?

System.Windows.Shapes.Rectangle swatch = new System.Windows.Shapes.Rectangle();
swatch.Width = 50;
swatch.Height = 50;

DrawingBrush blackBrush = new DrawingBrush();
GeometryDrawing backgroundSquare = new GeometryDrawing(System.Windows.Media.Brushes.White,null,new RectangleGeometry(new Rect(25, 0, 50, 50)));
GeometryGroup gGroup = new GeometryGroup();
gGroup.Children.Add(new RectangleGeometry(new Rect(25, 0, 100, 100)));
GeometryDrawing checkers = new GeometryDrawing(new SolidColorBrush(Colors.Black), null, gGroup);

DrawingGroup checkersDrawingGroup = new DrawingGroup();
checkersDrawingGroup.Children.Add(backgroundSquare);
checkersDrawingGroup.Children.Add(checkers);

blackBrush.Drawing = checkersDrawingGroup;

blackBrush.Viewport = new Rect(0, 0, 0.25, 0.25);
blackBrush.TileMode = TileMode.Tile;

swatch.Fill = blackBrush;

sp_Thumbnails.Children.Add(swatch);

最佳答案

拥有三个部分很简单,只需在您的 drawingGroup 中再添加一个 GeometryDrawing 对象即可。您还可以配置 GeometryDrawing 的数量,如下所示。

请参阅针对您的问题的通用解决方案,该解决方案将根据 groupCount 值显示水平部分。

public void CreateRectangle(int groupCount)
{
Rectangle swatch = new System.Windows.Shapes.Rectangle();
swatch.Width = 50;
swatch.Height = 50;
double groupsize = 100 / groupCount;
DrawingBrush blackBrush = new DrawingBrush();
DrawingGroup checkersDrawingGroup = new DrawingGroup();
//Considering 3 as groupCount
List<SolidColorBrush> brushes = new List<SolidColorBrush>() { Brushes.Black, Brushes.White,Brushes.Red };
double location = 0;
for (int i = 0; i < groupCount; i++)
{
GeometryDrawing drawing = new GeometryDrawing(brushes[i] , null,
new RectangleGeometry(new Rect(0, location,groupsize,groupsize)));
checkersDrawingGroup.Children.Add(drawing);
location += groupsize;
}
blackBrush.Drawing = checkersDrawingGroup;
swatch.Fill = blackBrush;

brdrect.Children.Add(swatch);
}

关于c# - 使用 DrawingBrush 创建两条垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com