本来蛮简单的一个用法,却在实用中折腾了半天,原因就一个属性没写xmlns='http://schemas.microsoft.com/clIEnt/2007',否则就一直报错,不知所以,正确用法为:
Xaml代码为:
string _Xaml=
"<PathGeometry xmlns='http://schemas.microsoft.com/clIEnt/2007'>" +
"<Pathfigure StartPoint='0,0'>" +
"<linesegment />" +
"</Pathfigure>" +
"</PathGeometry>";
PathGeometry myGEO= XamlReader.Load(xaml) as PathGeometry;
又解决了一个问题:
如果需要引用动态创建的控件,需要注意不能在XAML代码中使用x:name属性,通过为其指定name属性,并使用Findname方法,就可以完成对动态创建的控件的引用。
我们都知道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:
以上是内存溢出为你收集整理的XamlReader.Load Silverlight 程序动态创建添加UI元素全部内容,希望文章能够帮你解决XamlReader.Load Silverlight 程序动态创建添加UI元素所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)