<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
过去我们一直都是通过.xaml文件中的内容来设计Silverlight中的每一个元素的外观长相,有没有想过,如果需要动态的产生xaml代码,而不想通过.xaml文件来完成的时候该怎么办?
有这种需要吗?有的,而且对于ASP.NET开发人员来说,这类的需求俯拾皆是。
能够先把.xaml文件设计好,是我们假设早已经知道整个Silverlight功能要显示的内容、图形、或是动画等资源的个数与位置,如果这些信息事先都不知道,得要在执行阶段以ASP.NET的代码来动态决定的时候,显然就无法通过预先写好的.xaml文件来完成。
最典型的例子是“电子相册”功能的Silverlight程序,当我们要写一套程序来处理“网站上所有用户”的电子相册功能,每一个用户的每一本相册当然都会有不同的图片(相片),不可能都是固定的那几张,所以图片的位置、个数,我们事先都不知道,在执行阶段才有可能知道这些信息,因此我们几乎不可能事先写好.xaml文件,而是要在执行阶段动态的产生.xaml代码的内容。
又或者,我们要用Silverlight建立一个动态菜单,但是如果.xaml代码是固定的,那菜单内的选项、层级、点选后的HyperLink位置显然都无法任意调整,每次调整都要修改.xaml文件,如此一来相当不方便。
如果我们可以动态产生.xaml文件,就有着无限的可能性,像刚才提到的菜单、电子相册…等功能,我们都可以在ASP.NET程序的执行阶段,动态决定其内容,甚至可以把Silverlight功能包装在UserControl或是WebControl里,如此一来,使用Silverlight就跟使用控件一样简单。
由於上述种种原因,Silverlight的.xaml文件必须动态产生的需求相当明显。
在Silverlight 1.0正式版当中,动态产生xaml代码的功能有着相当不错的简单做法,我们称之为“InLine Xaml”。
过去我们都是利用Blend 2或是Visual Studio 2005先写好.xaml文件,若是通过InLineXaml的方式,我们就不需要受这个限制了,请看底下的.aspx页面:
通过这样的方式,我们可以把Xaml代码写在.aspx当中,就不需要再额外建立.xaml文件了。
您可能会说,那这样只是少写一个.xaml文件而已,跟“动态产生”Xaml代码有什么关系?别忘了,我们还有ASP.NET的“RegisterClientScriptBlock()”指令可用。
我们可通过ASP.NET代码,配上InLine Xaml的功能,即可动态的产生.xaml代码“喂”给xaml控件,以动态显示需要的.xaml内容。例如,请看底下的.aspx页面:
我们只有在页面当中布置一个Xaml控件(和一个Button,我们希望按下Button之后,可以动态产生出Xaml文件,这个.aspx页面的HTML代码如下:
接着,我们在按钮上Double-Click,撰写底下代码:
如此一来,我们连.xaml文件都不需要撰写,就可以在网页上建立出Silverlight的内容:
这样的好处是,不只少写了一个Xaml文件,更重要的是,我们可以通过ASP.NET的代码,随意的动态建立出程序当中所需要的Xaml内容。
例如,我们将ASP.NET代码修改如下:
很轻松的,我们就可以通过ASP.NET代码在Silverlight当中建立出多个Rectangle,甚至用代码调整其位置:
再修改一下,我们连颜色也可以动态产生:
执行结果如下:
资料来源: Silverlight权威讲座--ASP.NET整合秘技与独家案例剖析(董大伟 - 旗标)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1836570
分享到:
相关推荐
silverlight图表oxyplot例子--动态加载XAML
收集的WPF、SilverLight、XAML 技术资料
WPF、SilverLight、XAML新技术文档(适用于初学者学习)
Xaml-Spinners-WPF, 可用的WPF加载微调器 http Xaml-Spinners-WPF 免费的WPF加载微调器,这里提供完整信息: http://blackspike.com/silverlight-spinner/下面是一些我们用Blend和Illustrator制作的免费 sp
WPF、SilverLight、XAML新技术文档 委托接口继承 VS词汇
Using Silverlight and XAML in MVC MVP MVVM patterns Using Silverlight and XAML in MVC MVP MVVM patterns Using Silverlight and XAML in MVC MVP MVVM patterns
Silverlight xaml语法的详细说明
python库,解压后可用。 资源全名:xaml-0.5.4-py2.py3-none-any.whl
WPF+SilverLight+XAML技術文檔
XAML2CPP SILVERLIGHT WINCE XAML2CPP SILVERLIGHT WINCE XAML2CPP SILVERLIGHT WINCEXAML2CPP SILVERLIGHT WINCEXAML2CPP SILVERLIGHT WINCEXAML2CPP SILVERLIGHT WINCEXAML2CPP SILVERLIGHT WINCE
XAML-基础教程 pdf格式, 好东西,就不介绍了
WPF、SilverLight、XAML新技术 重要的是这种软件思想:软件= code + markup..
WPF一款自动整理XAML代码的插件
Microsoft.UI.Xaml.2.7_7.2208.15002.0_x64__8wekyb3d8bbwe
XAML 艺术代码 绘制图标示例代码,纯粹用XAML绘制的图标,异常精美
资源来自pypi官网。 资源全名:xaml-0.5.4-py2.py3-none-any.whl