平常写惯了ASP.NET,常常会把ASP.NET的逻辑套在SliverLight裡,像这次想测试SilverLight如何动态产生控制项,于是拉了一个StackPanel,然后在UserControl的Loaded事件裡打上StackPanel.Controls.Add,奇怪,怎么没有这个属性?后来才发现要取得这类容器的子项目,应该要用StackPanel.Children,于是就如同ASP.NET一样,又可以轻鬆的动态新增控制项了。
范例如下:
- private void UserControl_Loaded(object sender, RoutedEventArgs e)
- {
- for (int i = 0; i < 5; i++)
- {
- TextBox t = new TextBox();
- t.Text = new Random().Next().ToString();
- stackPanel1.Children.Add(t);
- }
- }