我在xaml中定義了一個名字為morepictureWrapPan為WrapPanel,然后將控件添加在此WrapPanel中。由於要實現控件的刪除功能,所以增加的textbox和button的名字都是有規律的
int textboxcount = 0;
private void DynameAddBTN()
{
TextBox tb = new TextBox();
string countstr = "d" + textboxcount;
tb.Name = "uploa" + countstr + "TB";
tb.IsEnabled = false;
Button btn = new Button();
btn.Name = "uploa" + countstr + "BTN";
btn.Content = "Upload";
btn.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFD2E0EF"));
//btn.Style = Resources["NormalBTNStyle"] as Style;
//上傳圖片到服務器按鈕的點擊事件
btn.Click += UploadPictureDynamic;
Button btn2 = new Button();
btn2.Name = countstr;
btn2.Content = "x";
btn2.Background = null;
btn2.Margin = new Thickness(0, 0, 9, 0);
btn2.Click += closepic_Click;
morepictureWrapPan.Children.Add(tb);
morepictureWrapPan.RegisterName("uploa" + countstr + "TB",tb);
morepictureWrapPan.Children.Add(btn);
morepictureWrapPan.RegisterName("uploa" + countstr + "BTN", btn);
morepictureWrapPan.Children.Add(btn2);
textboxcount++;
}
刪除動態控件的功能實現
//動態刪除控件
private void closepic_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
Button closebtn = FindName("uploa" + btn.Name + "BTN") as Button;
TextBox closetb = FindName("uploa" + btn.Name + "TB") as TextBox;
//移除子節點的textbox、button
morepictureWrapPan.Children.Remove(closebtn);
morepictureWrapPan.Children.Remove(closetb);
morepictureWrapPan.Children.Remove(btn);
}
