Silverlight 程序动态创建添加UI元素
香水坏坏 发表于 2007-10-27 [silverlight]
我们都知道XAML标签元素在silverlight运行时被转换成相应的对象;这篇文章将告诉大家在程序运行时,如何动态添加UI元素(对象)。
通过对象来创建UI元素
C#代码
- Rectangle rc;
- rc = new Rectangle();
- //改变Rectangle的属性(到目前位置,我们还未设置任何要显示的内容)
- rc.Width=20;rc.Fill = new SolidColorBrush(Colors.Red);
- //改变附加属性(attached properties),必须使用SetValue方法:
- //rectangle离画布左边距离为200PX
- rc.SetValue<double>(Canvas.LeftProperty,200);
- //添加把rc对象做为子对象添加到画布(和asp.net页的控件树的道理相拟)
- this.Children.Add(rc);
通过XAML创建UI元素
通过XamlReader类的Load方法,动态创建UI元素:
- 指定一条XAML内容字符串;
- 通过XamlReader.Load方法把元素在内存中编译(这样就可以得到UI元素对象的引用,也有可能是null,或者报错);
- 最后把它添加到容器的子控件中。
例如:在(X,Y)处创建一个大小为(W,H)的红色rectangle:
C#代码
- string xamlStr ="<rectangle Canvas.Left=\""+X+"\" Canvas.Top=\"+Y+"\""
- + " Width=\""+W+"\" Height=\""+H+"\""
- + " Fill =\"Red\" />";
- try{
- Rectangle rc = (Rectangle)XamlReader.Load(xamlStr);
- this.Children.Add(rc);
- ...
- }
- catch(Exception ex ){
- ...
- }
2590 3
访客评论
发表评论
- 你的姓名:
- 你的网站:
- EMAIL:
- 评论内容:
- 私人

