众所周知,在目前这个阶段,Silverlight并没有所谓的TextBox控件可以输入文字,因此,想要在Silverlight当中输入文字必须使用ASP.NET的TextBox控件来充当文字的输入功能。
这部份该如何作呢?这就要讨论到Xaml控件的WindowsLess属性了,其实该属性是Xaml控件当中相当重要的属性之一,它让ASP.NET的控件与Silverlight之间可以彼此合作,例如下图这样的状况:
上图中的文字输入功能,其实并非是Silverlight所提供的,如您所知,Silverlight目前并没有所谓的控件,因此也没有办法直接输入文字,但是我们可以和ASP.NET的TextBox控件加以配合,让Silverlight模拟出输入的功能。
其实设计的方式很简单,我们只需要通过Blend2把外框先绘制好:
接着把xaml code引用至Xaml控件中,然后关键的部份来了,请务必把Xaml控件的WindowsLess属性设为True,同时在Xaml控件上“叠上”TextBox对象(注意要把TextBox的Style设为position: absolute且将ZIndex设为大于Xaml控件,并通过“样式”功能,把TextBox的边框消除:
完成后,其HTML代码如下:
请注意,这个技巧在设计RIA时相当常见,读者可参考书附光盘中的范例“SilverlightStudyHostCom/Demo/AniBackground/Default.aspx”来了解设计的方式。
我们未来会介绍如何通过这样的方式,让使用者在Silverlight界面上输入文字,并通过AJAX技术传递给后端的ASP.NET程序。
资料来源: Silverlight权威讲座--ASP.NET整合秘技与独家案例剖析(董大伟 - 旗标)