wpf动态增加删除控件

我在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); }

  

原文地址:https://www.cnblogs.com/ssvip/p/7275690.html