none
Silverlight2教程(7):使用控件模板定制控件的观感(3) RRS feed

  • 常规讨论

  • Silverlight2教程(7):使用控件模板定制控件的观感
    发布于:2008-06-16 21:53:14 作者:Scott Guthrie 来源:http://blog.joycode.com/scottgu 访问:42次 文字:
      在控件模板中融入内容



      你也许会注意到一件事情,在上面的“RoundButton”控件模板中,按钮的大小,以及显示在其中的内容,都是写死的(总是“Push Me!”)。



      好消息是,WPF 和 Silverlight也能让我们对这些设置进行定制。我们可以在控件模板中通过使用 {TemplateBinding ControlProperty} 的标识扩展句法 (markup extension syntax) 来绑定到控件的属性来实现。这允许我们的控件模板随着外部开发人员设置在控件的属性而改变:





      注意上面,不是加 <TextBlock>控件来显示内容,而是使用<ContentPresenter>控件。那会允许我们不光让按钮显示文字字符串,而且可以显示任何自定义的内容(就象我们在本教程早先时候做的那样)。



      然后,我们可以在下面的三个按钮上使用上面的Style(每个按钮都有不同的内容和属性设置):





      上面的按钮然后就会象下面这样显示(对了,缩小的日历控件还支持翻页和日期选择!):





      如果我们想进一步,我们还可以往ControlTemplate中加故事板动画(来处理象“hover(悬浮)”,"focus(得到焦点)","pushed(按下)"这样的按钮状态)。这个能力允许我们创建非常优美的用户交互场景,同时还能促成HTML中不能实现的场景。



      在应用中操作控件的开发人员可以对所有这些样式和控件交互定制保持一无所知,他们还可以依然如故地处理控件的事件和操作控件的对象模型,而让设计师另外使用样式和模板对控件的观感进行精雕细琢和定制。



     对我们的Digg应用进行润色(Polishing up)



      至此,我们讨论了控件模板工作原理的一些基础知识,让我们来在几个地方用它们来给我们的Digg应用的UI加些点缀。



      目前,应用中一个明显需要一些加工的地方是我们用户控件的“Close”(关闭)按钮:





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




    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月11日 7:19
    版主