Expression Blend实例中文教程(11)2011-08-12 博客园 jv9Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)Visual State Manager,中文又称视觉状态管理器(简称为VSM),是Silverlight 2中引进的一个概念 。通过使用VSM,开发人员和设计人员可以轻松的改变项目控件的视觉效果,在项目中VSM主要用于创建自 定义控件以及控件模板。为了能够打造个性绚丽的Silverlight项目,学习掌握VSM是非常必要的。本文将 介绍VSM的快速入门知识以及VSM在Blend中的使用方法。在学习VSM前,首先,了解以下几个基本概念:正如前文所说,VSM视觉管理器是用户控制项目控件的视觉效果,Silverlight在定义控件的时候,将 其外观效果独立封装,另外对控件逻辑部分也进行了独立封装,换句话说,当开发人员修改控件外观效果 的时候,不会影响到控件的逻辑部分。由此可见,Silverlight控件是由两个主要部分所组成,Parts(部 件)和 States Model(状态模块)。1. Parts (部件),主要负责控件的外观显示。Silverlight的大部分控件都是由多个子控件组合而 成,而这些子控件部分就是Parts。注意,这里我们说是大部分控件都由子控件组合而成,并非所有控件 都有子控件部分,所以,也有可能控件没有Parts(部件)部分。在MSDN对于控件有详细的说明,具体控 件的组成需要查询MSDN。这里我们看看下面的例子,我们使用ChildWindow作为解释例子:

在一个ChildWindow中,有6个Parts(部件),分别是Chrome,子窗口框架CloseButton, 子窗口头部的关闭按钮ContentPresenter, 子窗口主要内容部分ContentRoot, 是承载Chrome和CotentPresenter的容器Overlay, 当子窗口打开的时候,覆盖在父窗口上的部件Root, 父控件从上面可以看出,一个ChildWindow是由6个子部件组成,而修改这6个Parts的外观样式,自然也就更 改了ChildWindow的外观显示状态,也就产生了不同的视觉效果。2. Visual States Model(视觉状态模块),为了理解方便,可以细分为三部分来理解,Visual States(视觉状态),Visual State Groups(视觉状态组)和Visual Transitions(视觉过渡转换)Visual States(视觉状态)是指控件在特定情况下的显示状态。简单的说就是控件在不同情况下显示 的效果。例如上文的ChildWindow,对于子窗口,只有两种Visual States(视觉状态),一种是显示子窗 口,另一种就是隐藏子窗口。所以,在MSDN中ChildWindow的VisualStates定义只有:Closed,子窗口隐藏Open,子窗口显示