WindowsPhone:如何在矩形上画一条线

本文关键字:一条 WindowsPhone | 更新日期: 2023-09-27 18:27:36

我画了一个矩形,需要把这个矩形分成两部分。我试着用线来划分它,但我不知道为什么我看不到线。

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);

你知道如何在矩形上加一条线吗?

WindowsPhone:如何在矩形上画一条线

以下是如何垂直划分:-

a) 你画了一条5像素宽的线,但它不可见,因为你的线是黑色的,页面背景也是黑色的,所以这条线被隐藏了。这条线是从(2,41)到(7,41)画的。

b) 你的矩形在页面的中心,100像素宽,和页面一样高,因此左上角的线与中心的矩形不相交

c) 我建议使用Canvas,因为你可以很容易地在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中的画布。。。我刚刚在默认页面模板中将其从"网格"更改为"画布"。

2) 我用这两行来设置矩形在画布上的位置。您可以将其更改为任何硬编码/编程计算的值。

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的位置是矩形顶部和矩形顶部加上矩形高度。

将这两个元素添加到画布中,它将在中工作