以圆形/矩形动态排列控件
本文关键字:排列 控件 动态 | 更新日期: 2023-09-27 17:57:07
只是想知道是否有办法像圆桌一样将控件排列成圆形。控件可以是图像或文本框。例如:如果我有一个椭圆形状,我所寻找的只是沿着椭圆的周边边框填充控件。请让我知道是否有办法使用 xaml 和 c# 执行此操作。这是我到目前为止所做的。我创建了一个矩形,并使用点类型具有 X、Y 位置值。根据这些点,我可以创建一个文本框。但无法循环,直到 I 再次达到 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 方向添加控件...椭圆也可以用矩形代替。控件正在添加,但它们仅添加到彼此下方的一列中。
<StackPanel x:Name="SpTable1">
您必须使用 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);
}
希望这有帮助