原文: WPF 中動态建立和删除控件
動态建立控件
1.容器控件.RegisterName("Name",要注冊的控件) //注冊控件
2.容器控件.FindName("Name") as 控件類型 //找到控件并轉換成相應類型
注意:僅通過 控件.Name來設定是不能通過FindName來找到控件的,必須注冊
動态删除控件
1.容器控件.Children.Remove(控件) //移除控件
2.容器控件.UnregisterName("Name") //取消注冊
其它設定
1.控件.SetValue(Grid.RowProperty, 0); //設定控件在Grid面闆中的行數
控件.SetValue(Grid.ColumnProperty, 1);
//設定控件在Grid面闆中的列數
2.Canvas.SetLeft("控件名", 50); //設定控件在Canvas面闆中的橫坐标
Canvas.SetTop("控件名", 50); //設定控件在Canvas面闆中的縱坐标
eg:
當點選Button_Add按鈕的時候在Canvas裡添加一個Button;
當點選Button_Remove的時候把這個新加的Button移除;
設:Canvas 的Name為 canvas
代碼:
private void Button_Add_Click(object sender, System.Windows.RoutedEventArgs e)
{
Button btn = new Button();
//btn.Name = "newButton";//這裡設定的Name是找不到的
btn.Width = 100;
btn.Height= 50;
canvas.Children.Add(btn);
canvas.RegisterName("newButton", btn);//注冊名字,以便以後使用
}
private void Button_Remove_Click(object sender, RoutedEventArgs e)
{
Button btn = canvas.FindName("newButton") as Button;//找到剛新添加的按鈕
if (btn != null)//判斷是否找到,以免在未添加前就誤點了
{
canvas.Children.Remove(btn);//移除對應按鈕控件
canvas.UnregisterName("newButton");//還需要把對用的名字登出掉,否則再次點選Button_Add會報錯
}
}
運作一下,就可以了。