我绘制一个矩形,我需要将这个矩形分成两部分。我试图使用线来划分它,但我不知道为什么我看不到这条线。
Rectangle rect = new Rectangle();
rect.Fill= Colors.Blue;
rect.Width=100;
rect.Margin = new Thikness (0,40,0,0);
grid.Children.Add(rect);
Line line = new Line();
line.Stroke = Colors.Black;
line.StrokeThickness=1;
line.X1=2;
line.X2=7;
line.Y1=41;
line.Y2=41;
grid.Children.Add(line);
您是否知道如何在矩形上添加一条线?
答案 0 :(得分:6)
以下是垂直划分的方法: -
a)你正在绘制一条宽5像素的线但是因为你的线是笔划黑而页面背景也是黑色所以它是不可见的,因此该线被隐藏了。该线从(2,41)到(7,41)。
b)您的矩形位于页面的中心,宽100像素,与页面一样高,因此左上角的线与中心的矩形不相交
c)我建议使用Canvas,因为你可以轻松设置画布上每个项目的顶部和左侧像素位置
我通过以下方式修改了代码: -
Rectangle rect = new Rectangle();
rect.Fill = new SolidColorBrush(Colors.Blue);
rect.Width = 100;
rect.Height = 200;
Canvas.SetLeft(rect, 200);
Canvas.SetTop(rect, 20);
LayoutRoot.Children.Add(rect);
Line line = new Line();
line.Stroke = new SolidColorBrush(Colors.White);
line.StrokeThickness = 1;
line.X1 = Canvas.GetLeft(rect) + rect.Width / 2;
line.X2 = Canvas.GetLeft(rect) + rect.Width / 2;
line.Y1 = Canvas.GetTop(rect);
line.Y2 = Canvas.GetTop(rect) + rect.Height;
LayoutRoot.Children.Add(line);
1)LayoutRoot是我在XAML中的Canvas ...我刚刚在默认页面模板中将它从Grid更改为Canvas。
2)我使用这两行来设置画布上rect的位置。您可以将其更改为任何硬编码/编程计算的值。
Canvas.SetLeft(rect, 200);
Canvas.SetTop(rect, 20);
3)我已经计算了这里线的X和Y位置
line.X1 = Canvas.GetLeft(rect) + rect.Width / 2;
line.X2 = Canvas.GetLeft(rect) + rect.Width / 2;
line.Y1 = Canvas.GetTop(rect);
line.Y2 = Canvas.GetTop(rect) + rect.Height;
X1和X2位置基本上是矩形的左侧位置加上矩形宽度的一半
Y1和Y2位置是矩形顶部和矩形顶部加上矩形高度。
将这两个元素添加到画布中,它将起作用