只是想知道是否有办法将控件安排在像圆桌这样的圆形形状中。控件可以是图像或文本框。例如:如果我有一个椭圆形状,我所看的就是沿着椭圆的周边边界填充控件。如果有办法使用xaml和c#,请告诉我。这是我到目前为止所做的。我创建了一个矩形,并使用Point Type获得了X,Y位置值。基于这些点,我可以创建一个文本框..但不能循环,直到我再次达到0,0。 0,0是左下角位置(x,y)
for (int i = 0; i < count; i++)
{
TextBox tb = new TextBox();
tb.Text = "Button " + i;
Point p = new Point();
p.X = (int)(Math.Cos((double)i) * radius) + radius;
p.Y = (int)(Math.Sin((double)i) * radius) + radius;
Canvas.SetLeft(tb, p.X);
Canvas.SetTop(tb, p.Y);
SpTable.Children.Add(tb);
}
同样需要在Y方向添加控件... Ellipse也可以替换为Rectangle。这些控件正在添加,但它们只会在一列中相互添加。
<StackPanel x:Name="SpTable1">
答案 0 :(得分:1)
你必须使用cos和sin来计算文本框的位置。
这将创建20个以圆形图案排列的文本框。
int radius = 200;
for (int i = 1; i < 20; i++)
{
TextBox tb = new TextBox();
tb.Left = (int)(Math.Cos((double)i) * radius) + radius;
tb.Top = (int)(Math.Sin((double)i) * radius) + radius;
this.Controls.Add(tb);
}
希望这有帮助