欢迎来到天天文库
浏览记录
ID:37583438
大小:436.43 KB
页数:7页
时间:2019-05-25
《UI前沿技术-Silverlight 4中的流畅UI》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、©2010MicrosoftCorporation.Allrightsreserved.UI前沿技术术术Silverlight4中的流畅UICharlesPetzold下下下载载载代代代码码码示例[http://code.msdn.microsoft.com/mag201007UIFrontiers.aspx]“流畅UI”这个词最近常被用来形容一种UI设计技术,这种技术能够避免让可视化对象突然进入视野或者从一个位置跳到另一个位置。流畅的可视化对象在进入视野和变换位置时更加优雅,有时就像从雾中浮现或者滑入视野。我在本专栏的前两篇文章中介绍过一些您自己实
2、现流畅UI的技术,当时的部分灵感就来源于Silverlight4中即将推出的流畅UI功能。现在,Silverlight4已经正式发布,本文就为您介绍其功能。Silverlight4中流畅UI的使用范围很窄,只用于加载和卸载ListBox中的项,但是却能给我们一些重要的启发,告诉我们如何在自己的实现中扩展流畅UI技术。ExpressionBlend4中具备更多的流畅UI行为。模板和VSM如果您不知道新的流畅UI功能究竟在Silverlight4的什么地方,您可能需要花几个小时去寻找。它不是类;不是属性;不是方法;也不是事件。实际上,它是ListBoxI
3、tem类上的三个新的视觉状态。图图图图1显示了这个类的文档,其中的TemplateVisualState属性项进行了微调,以符合组的名称。图1ListBoxItem类类类文类文文文档档档档复制代码[TemplateVisualStateAttribute(Name="Normal",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="MouseOver",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="D
4、isabled",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="Unselected",GroupName="SelectionStates")][TemplateVisualStateAttribute(Name="Selected",GroupName="SelectionStates")][TemplateVisualStateAttribute(Name="SelectedUnfocused",GroupName="SelectionStates")][Templa
5、teVisualStateAttribute(Name="Unfocused",GroupName="FocusStates")][TemplateVisualStateAttribute(Name="Focused",GroupName="FocusStates")][TemplateVisualStateAttribute(Name="BeforeLoaded",GroupName="LayoutStates")][TemplateVisualStateAttribute(Name="AfterLoaded",GroupName="LayoutS
6、tates")][TemplateVisualStateAttribute(Name="BeforeUnloaded",GroupName="LayoutStates")]publicclassListBoxItem:ContentControl视觉状态管理器(VSM)是Silverlight中最重要的更改之一,它改编自WindowsPresentationFoundation。在WPF中,样式或模板(几乎总是用XAML定义)可以包含名为触发器的元素。这些触发器被定义为检测属性更改或检测事件,然后启动一段动画或更改另一个属性。例如,一个控件的样式定义
7、可以包含一个针对IsMouseOver属性的触发器,当该属性为True时,触发器将控件的背景设置为蓝色画笔。也可以定义针对MouseEnter和MouseLeave事件的触发器,当这些事件发生时可以启动几段简短的动画。在Silverlight中,大部分触发器都被弃用,取而代之的是VSM。这么做的部分原因是希望提供更加结构化的方法,以便在运行时动态更改控件的特征;还有部分原因是避免在定义多个触发器后,处理各种可能的组合。VSM被认为是对触发器的极大改进,因此包含在Microsoft.NETFramework4的WPF中。您从图图图图1可以看到,List
8、BoxItem控件支持11种视觉状态,这些状态被分为四组。在每一组中,任意时刻只能有一种视觉状态是活动的。这
此文档下载收益归作者所有