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
代码:
- privatevoid 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);//注册名字,以便以后使用
- }
- privatevoid 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会报错
- }
- }
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会报错
}
}
运行一下,就可以了。
转自:http://blog.csdn.net/wushang923/article/details/6688056
WPF 中动态创建、删除控件,注册控件名字,根据名字查找控件的更多相关文章
- WPF 中动态创建和删除控件
原文:WPF 中动态创建和删除控件 动态创建控件 1.容器控件.RegisterName("Name",要注册的控件) //注册控件 2.容器控件.FindName(" ...
- WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...
- WPF中动态更新TextBlock文字中的超链接,文本
1.------------------------------------------------------------------------- 修改超链接的文本文字: <TextBloc ...
- Delphi中动态创建窗体有四种方式
Delphi中动态创建窗体有四种方式,最好的方式如下: 比如在第一个窗体中调用每二个,主为第一个,第二个设为动态创建 Uses Unit2; //引用单元文件 procedure TForm1.But ...
- 在DELPHI中动态创建控件以及控件的事件
在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...
- WPF 中动态改变控件模板
在某些项目中,可能需要动态的改变控件的模板,例如软件中可以选择不同的主题,在不同的主题下软件界面.控件的样式都会有所不同,这时即可通过改变控件模板的方式实现期望的功能. 基本方法是当用户点击切换主题按 ...
- BroadcastReceiver接收电量变化的广播-------在代码中动态创建接受者
本例为动态创建广播接收者即不是在AndroidManifest.xml文件中定义的广播接收着 代码: package com.qf.broadcastreceiver01; import androi ...
- Unity中动态创建Mesh
什么是Mesh? Mesh是指的模型的网格,3D模型是由多边形拼接而成,而多边形实际上又是由多个三角形拼接而成的.即一个3D模型的表面其实是由多个彼此相连的三角面构成.三维空间中,构成这些三角形的点和 ...
- python中动态创建类
class Foo(Bar): pass Foo中有__metaclass__这个属性吗?如果是,Python会在内存中通过__metaclass__创建一个名字为Foo的类对象(我说的是类对象,请紧 ...
随机推荐
- Windows定时器
目录 第1章定时器 1 1.1 创建定时器 1 1.2 销毁定时器 1 1.3 定时器的运作 1 1.3.1 产生WM_TIMER消息 1 1.3.2 分发WM_TIME ...
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...
- UIStepper
@在IOS5中增加了一个UIStepper的新控件,UIStepper可以连续增加或减少一个数值.控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”. 1. 初始化控件 UISte ...
- linux笔记:链接命令,软链接和硬链接
命令名称:ln功能:生成链接文件命令所在目录:/bin/ln用法:ln [-s] 原文件 目标文件参数:-s 创建软链接(不写此参数则生成硬链接) 软链接:类似windows中的快捷方式.它只是一个链 ...
- Eclipse Maven Web Application 设置配置文件
默认的项目添加会有问题,各种版本和编译版本错误造成. 1.更改Maven编译版本 2.更改项目Facets针对的版本 3.更改Settings
- Shell基础:变量类型 & 运算符
Shell变量 Shell支持三种类型的变量 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写. 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$ ...
- MyBatis执行过程显示SQL语句的log4j配置
log4j.properties文件 log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apache.log4j.Co ...
- hdu---(1325)Is It A Tree?(并查集)
Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- DataTable 中Distinct操作
DataTable dt = ds.Tables[]; DataView dataView = dt.DefaultView; DataTable dtDistinct = dataView.ToTa ...
- java中汉字自动转换成拼音
java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...