C# 我不能向画布添加超过2个控件
我试图在运行时为Windows Phone应用程序添加控件,但在画布上添加的控件不能超过2个。我在主屏幕上有一个文本框,用户将输入一个数字,这个数字将产生这么多的文本框。此代码适用于0、1或2个文本框,但不能添加超过2个:C# 我不能向画布添加超过2个控件,c#,xaml,canvas,windows-phone-8.1,C#,Xaml,Canvas,Windows Phone 8.1,我试图在运行时为Windows Phone应用程序添加控件,但在画布上添加的控件不能超过2个。我在主屏幕上有一个文本框,用户将输入一个数字,这个数字将产生这么多的文本框。此代码适用于0、1或2个文本框,但不能添加超过2个: `int seriuzunlugu; seriuzunlugu=Convert.ToInt32(SeriUzunluguTxt.Text); int Xtop, Xleft, Ytop, Yleft;
`int seriuzunlugu;
seriuzunlugu=Convert.ToInt32(SeriUzunluguTxt.Text);
int Xtop, Xleft, Ytop, Yleft;
Xtop = 10;
Xleft = 70;
Ytop = 10;
Yleft = 250;
for (int i = 0; i <seriuzunlugu ; i++)
{
//Xi değeri
TextBox Xi = new TextBox();
Xi.Name = "X" + i.ToString();
Xi.Width = 5;
Xi.Height = 5;
canvas.Children.Add(Xi);
Canvas.SetLeft(Xi,Xleft);
Canvas.SetTop(Xi,Xtop);
Xtop = +60;
//Yi değeri
TextBox Yi = new TextBox();
Yi.Name = "Y" + i.ToString();
Yi.Width = 5;
Yi.Height = 5;
canvas.Children.Add(Yi);
Canvas.SetLeft(Yi, Yleft);
Canvas.SetTop(Yi, Ytop);
Ytop = +60;
}
//X değeri
TextBox x = new TextBox();
x.Name = "xdegeri";
x.Width = 50;
x.Height = 10;
x.Text = canvas.Children.Count.ToString();
canvas.Children.Add(x);
Canvas.SetTop(x, Xtop + 50);
Canvas.SetLeft(x, Xleft);`
在支持XAML的技术中,强烈建议您使用适当的XAML以声明方式定义UI,然后使用适当的数据绑定以实际数据填充UI。第二,当应用程序看起来像这样简单时,您应该尽量避免通过代码隐藏添加文本框,ItemsControl应该适合您的需要。如果您想添加Seriuzunulugu文本框,那么您必须替换它们,它们被添加,但在同一位置。。。更改Canvas.SetTopXi,Xtop;到Canvas.SetTopXi,Xtop+i*offset;Gusman |添加文本框后,我将向Xtop添加+60value@OknAkdgn同样,您的方法是错误的,画布不是您在这里尝试实现的合适的布局容器。您以垂直方式将元素堆叠在彼此下方,这就是StackPanel的用途。使用绑定到包含数据项的ObservableCollection的ItemsControl,并使用适当的数据绑定和数据模板。