Silverlight 下苹果(Mac OS)风格按钮的实现
2008-10-24 11:46:47 来源:WEB开发网Silverlight 2beta 2 内置的每一种控件都有其自身的契约,我们在为控件创建 Style 时必须符合此契约的要求才能生效。
一般包含3个方面:
1) 属性
2) 控件可能用到的 UIElement. (用 TemplatePartAttribute 标记)
3) VisualState 对象 (用 TemplateVisualState 在控件上标记)
这里 VisualState 很有意思,表示控件的状态。并且状态可以分组,同一个组内的状态可以互相迁移。
比如 Button 有两组状态:一组是“普通”、“鼠标悬停”、“按下”、“禁用”;而另一组是“获得焦点”、“失去焦点”。
两组状态可以同时生效,互不影响。
在 ControlTemplate 内,我们可以定义各个状态以及状态间迁移时的动画 (用一个 Storyboard 定义),以及状态之间迁移花费多少时间 (Duration) 等。
Button 控件的契约如下:
[TemplateVisualState(Name="Normal",GroupName="CommonStates")]
[TemplateVisualState(Name="MouseOver",GroupName="CommonStates")]
[TemplateVisualState(Name="Pressed",GroupName="CommonStates")]
[TemplateVisualState(Name="Disabled",GroupName="CommonStates")]
[TemplateVisualState(Name="Unfocused",GroupName="FocusStates")]
[TemplateVisualState(Name="Focused",GroupName="FocusStates")]
publicclassButton:Control
{
publicstaticreadonlyDependencyPropertyBackgroundProperty;
Tags:Silverlight 苹果 Mac
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接