silverlight技巧 用xamlreader读写XAML页面.

2016-08-20 10:35:21来源:http://nick287.blog.51cto.com/6666932/1162201作者:sonic1abc人点击


这次给大家晒晒 silverlight 用户控件的另一种写法xamlreader.


是不是有些朋友想过在 silverlighter 里使用 aps.net 里面的 response.write(); 方法输出HTML代码那样输出 XAML 代码呢? 呵呵这里我就给大家晒晒如何实现吧~


首先我要帮大家引入一个对象 他位置与 System.Windows.Markup; 命名空间下. 这里有一个静态类XamlReader,以及read方法 我们就要用他来创建我们的usercontrol.


//Summary://ProvidesaXAMLprocessorengineforparsingXAMLandcreatingcorresponding//Silverlightobjecttrees.publicstaticclassXamlReader{//Summary://Parsesawell-formedXAMLfragmentandcreatesacorrespondingSilverlight//objecttree,andreturnstherootoftheobjecttree.////Parameters://xaml://AstringthatcontainsavalidXAMLfragment.////Returns://TherootobjectoftheSilverlightobjecttree.publicstaticobjectLoad(stringxaml);

了解这个对象后给大家一个实例看看怎么用吧~ 还是很简单的,


1. 我们创建一个类 自然就是我们的 usercontrol 了 继承自 control


2. 我们要把我们模板的 Xmal 以string 的形式保存写入程序中


3. 我们要在构造函数中载入这些 XAML


4. 我们在重载onapplytemplate() 方法中声明创建的对象XMAL代码.


以下是我要写入的Xaml;


publicclassMyImage:Control{Image_myImage=null;privateconststring_contentTemplate="<ControlTemplatexmlns=/"http://schemas.microsoft.com/winfx/2006/xaml/presentation/""+"xmlns:x=/"http://schemas.microsoft.com/winfx/2006/xaml/">"+"<Imagex:Name=/"sonicImage/"Source=/"space.jpg/"></Image>"+"</ControlTemplate>";}

构造函数


publicMyImage(){Template=(ControlTemplate)XamlReader.Load(_contentTemplate);ApplyTemplate();}

重载onapplytemplate


publicoverridevoidOnApplyTemplate(){_myImage=(Image)GetTemplateChild("sonicImage");}

这样我们就可以更灵活的使用我们的用户控件,很简单吧~ 希望这点技巧对你有所帮助^^


Source code:XamlReader_Demo



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台