WPF 中动态创建和删除控件

摘要:
动态创建控件1.容器控件.RegisterName("Name",要注册的控件)//注册控件2.容器控件.FindName("Name")as控件类型//找到控件并转换成相应类型注意:仅通过控件.Name来设置是不能通过FindName来找到控件的,必须注册动态删除控件1.容器控件.Children.Remove(控件)//移除控件2.容器控件.UnregisterName("Name")//取消

动态创建控件

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(objectsender, System.Windows.RoutedEventArgs e)

        {

            Button btn = newButton();

            //btn.Name = "newButton";//这里设置的Name是找不到的
btn.Width = 100;

            btn.Height= 50;

            canvas.Children.Add(btn);

            canvas.RegisterName("newButton", btn);//注册名字,以便以后使用
}

 

        private void Button_Remove_Click(objectsender, RoutedEventArgs e)

        {

            Button btn = canvas.FindName("newButton") as Button;//找到刚新添加的按钮

            if (btn != null)//判断是否找到,以免在未添加前就误点了
{

                canvas.Children.Remove(btn);//移除对应按钮控件
canvas.UnregisterName("newButton");//还需要把对用的名字注销掉,否则再次点击Button_Add会报错
}

        }

运行一下,就可以了。

转载:https://blog.csdn.net/wushang923/article/details/6688056

免责声明:文章转载自《WPF 中动态创建和删除控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇分布式RPC框架ZeroC Ice简介iOS二十种超酷时尚艺术滤镜汇总【附源码】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【WPF】附加属性

一直都对附加属性理解很模糊,今天看了一篇文章,恍然大悟,用个Demo掩饰一下对附加属性的理解 附加属性,简单的理解就是给一个对象外在的定义一个属性,使得该对象拥有和使用该属性,最典型的是Grid.Row和Canvas.Top的应用 1、定义一个空间Rectangle,并且使之旋转30度 <Rectangle Fill="Red" Wi...

PowerDesigner的样式设置

PD提供了强大的配置功能,可以对生成的数据库对象命名、数据模型的展现进行设置。这里首先讲下样式的设置。 颜色和字体设置 1.单独设置某个对象的颜色和字体 1.1修改实体填充色 (1)单击选中某个需要修改填充色的实体。 (2)右击,在弹出式菜单中选择“Format”选项,系统将弹出格式化窗口。 (3)切换到“Fill”选项卡中,选择Fill color为白色...

flutter 如何修改返回按钮的颜色

flutter 如何修改返回按钮的颜色 如果想设置AppBar返回按钮的颜色,可以通过修改相对应主题色的方式来完成,示例代码如下: appBar: AppBar( iconTheme: IconThemeData( color: Colors.black, //修改颜色 ), title: Text("示...

WPF 设置Frame中Page的DataContext

WPF窗体MainWindow中有 Frame控件,名为 MainFrame, MainFrame 通过ViewModel绑定Source属性来设置显示的Page页,其中的Page页需要与MainWindow 共用一个ViewModel对象做DataContext MainWindow.xaml <Border Margin="5" Backgrou...

WPF 同一窗口内的多线程 UI(VisualTarget)

WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验。如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程。然而,就不能让同一个窗口内部使用多个 UI 线程吗? 答案其实是——可以的!使用 VisualTarget 即可。 阅读本文将收获一份对 VisualTarget 的解读以...

wpf prism加载独立模块实例

一、首先看看文件的组织架构 module1 module2生成dll某块。Shell来显示管理模块 二,看看关键bootstrapper类 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tas...