WEB开发网
开发学院图形图像Flash Silverlight 下苹果(Mac OS)风格按钮的实现 阅读

Silverlight 下苹果(Mac OS)风格按钮的实现

 2008-10-24 11:46:47 来源:WEB开发网   
核心提示: Silverlight 2beta 2 内置的每一种控件都有其自身的契约,我们在为控件创建 Style 时必须符合此契约的要求才能生效,Silverlight 下苹果(Mac OS)风格按钮的实现(2),一般包含3个方面:1) 属性2) 控件可能用到的 UIElement. (用 Temp

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;

上一页  1 2 3 4 5 6 7  下一页

Tags:Silverlight 苹果 Mac

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接