对我们的Digg应用进行润色(Polishing up)
至此,我们讨论了控件模板工作原理的一些基础知识,让我们来在几个地方用它们来给我们的Digg应用的UI加些点缀。
目前,应用中一个明显需要一些加工的地方是我们用户控件的“Close”(关闭)按钮:

好消息是,这对我们(或者跟我们协作的设计师)来说很容易修正。我们可以在App.xaml文件中的 "CloseButton" 样式中加一个ControlTemplate,加一些自定义的矢量形状来提供一个比较好看的关闭按钮(注:比我更称职的设计师大概还会加悬浮和动画行为到矢量图像形状上去,让它更好看些):
 点击放大
重新运行我们的应用的话,按钮看上去象下图:

我们应用中我认为应该润色的第二个地方是ListBox的外圈界面。如果你仔细看的话,你可以看到Beta1版本中的ListBox有一个嵌套的边框,作为它的默认外观(注:我们还没最后决定要发布的默认皮肤,所以在最终版之前,这非常有可能会改变):

我们可以除去这个,通过定制它的控件模板来给与ListBox一个平的边框(flat border)。下面是一个以自定义模板样式化了的,有平的边框的ListBox :

注意我们是如何除去ListBox的边框控件的,我们只用了Silverlight中的<ScrollViewer>控件(该控件允许其中任何内容做卷动),将一个<ItemsPresenter/>控件嵌入其中,该控件负责ListBox中实际条目的显示(它使用了我们在第四部分中创建的 <DataTemplate> 来显示这些条目)。
下面是它现在给与我们的List更为平直的外观:

比较酷的是,为了做这些观感的改动,我们不用更改应用中的任何代码,或者修改实际的控件的XAML标识。这种代码、设计的分离能在Silverlight和WPF应用中促进开发人员和设计师之间的流畅的工作流程。Expression Blend 和所有的 Expression Studio产品把这些控件设计功能提到了又一个高度,将提供方便这种定制的丰富的设计师工具集。
下一步
至此,我们完成了Digg应用在Silverlight中的实现。
最后一步,是实现一个桌面应用的版本。好消息是,做起来并不难,因为Silverlight是完整WPF和.NET框架的一个子集,所以概念,代码和内容都很容易转移过去的。
想看是如何实现的,让我们跳到下一个教程:《使用WPF创建一个Digg桌面应用》。
本文链接:http://www.blueidea.com/tech/multimedia/2008/5392.asp
出处:Scott Guthrie 博客中文版
责任编辑:bluehearts
上一页 使用控件模板定制控件的观感 [3] 下一页
◎进入论坛RIA设计与应用版块参加讨论
|