视觉状态管理器
我们再来看一下视觉状态管理器的概念,有了上面这些概念,在Silverlight 2中视觉状态管理是通过视觉状态管理器(Visual State Manager)来进行的,Silverlight 2中提供了VisualStateManager类,如下所示:
public class VisualStateManager : DependencyObject
{
public static DependencyProperty CustomVisualStateManagerProperty;
public VisualStateManager();
public static VisualStateManager GetCustomVisualStateManager(DependencyObject obj);
public static Collection<VisualStateGroup> GetVisualStateGroups(DependencyObject obj);
public static bool GoToState(Control control, string stateName, bool useTransitions);
protected virtual bool GoToStateCore(Control control, FrameworkElement templateRoot,
string stateName, VisualStateGroup group, VisualState state, bool useTransitions);
public static void SetCustomVisualStateManager(DependencyObject obj,
VisualStateManager value);
}
视觉状态管理器负责管理控件的状态和状态组以及状态的迁移。
状态变化
外部事件触发将会引起状态的变化,进而引发状态迁移,整个过程如下流程图所示:
总结
本文介绍了Silverlight 2中视觉状态管理的一些基本概念,下篇文章,我们将结合实例看看如何使用视觉状态管理来定制控件的观感。