定义控件的不同视觉状态

您可以通过以下方式在应用程序中创建交互功能:为 UserControl 控件、 Window 控件、 Page 控件或控件模板可出现的每个可视状态定义不同的可视外观,然后添加行为或代码,以便基于用户交互在这些状态之间切换。您可以修改两个状态组合之间的过渡,甚至创建将在第一次进入某个状态时运行的动画。

状态组

状态组包含任何属于同一逻辑类别并且无法同时显示的可视状态。一次只能显示状态组中的一种状态,但一个组中的状态可与另一个状态组中的状态同时显示。

例如,如果使用表示扑克牌的 UserControl 控件,则可能有一个名为“SideDisplayed”的状态组,其中包括显示牌面朝上 (FaceUp) 和牌面朝下 (FaceDown) 的状态。可能还有一个名为 MouseInteraction 的状态组,其中包括用于在指针位于扑克牌上时 (MouseOver) 和单击扑克牌时 (Click) 更改扑克牌外观的状态。扑克牌的牌面可以朝上,与此同时也可以将指针移到这张牌上,因此这些状态属于不同的状态组。但是,扑克牌不能同时牌面朝上和牌面朝下,因此这两个状态可能属于相同的状态组。

扑克牌的状态组和状态

Ee371169.4fecf399-1962-4668-86e7-efe1a485cbc1(zh-cn,Expression.40).png

有关详细信息,请参阅定义用户控件的可视状态和过渡时间

状态

当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请单击记录按钮 Ee371169.0dcc6415-6d4e-4fcf-a9a3-eb4664cb6cbc(zh-cn,Expression.40).png,或者在“状态”面板中选择“Base”。如果要更改一个状态组中状态的外观,同时还要查看处于另一个状态组中的状态下的控件,您可以在处于第一个状态的记录模式下时固定第二个状态的预览。

有关详细信息,请参阅定义用户控件的可视状态和过渡时间

若要在状态之间切换,您可以使用 GoToStateAction 行为,或者可以在事件处理程序中编写代码。

有关详细信息,请参阅更改用户交互的响应状态

过渡

您可以增加发生状态更改时状态过渡所需的时间量。您可以为整个状态组设置过渡持续时间,也可以为特定状态组合之间发生的过渡设置过渡持续时间。

为状态组中的所有状态设置过渡持续时间

Ee371169.d1eabf30-62d2-47ae-a52b-453c702b9358(zh-cn,Expression.40).png

仅为从 Click 状态到所有其他状态的过渡设置过渡持续时间

Ee371169.1ed8d611-1ce5-4101-ad73-54aa166c4e9a(zh-cn,Expression.40).png

有关详细信息,请参阅修改状态更改之间的过渡时间定义用户控件的可视状态和过渡时间

对于修改离散值布局属性(例如列号或行号)或自动设置的布局属性(例如宽度和高度)的状态,如果要在这些状态之间创建平滑过渡,您可以使用流动布局。

有关详细信息,请参阅在布局更改之间平稳过渡

状态动画

您可以为状态添加动画,使其在控件过渡到该状态后加以显示。

有关详细信息,请参阅添加状态改变后显示的动画

另请参阅

任务

创建可重用模板以为系统控件设置样式

概念

从头开始设计用户控件
常用 Silverlight 控件的样式提示

Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。