定义用户控件的可视状态和过渡时间

此页仅适用于 Silverlight 2 项目

当您创建自己的用户控件时,可以添加自定义状态和状态组来定义用户控件在每种状态下不同的外观。例如,如果您的用户控件代表一张扑克牌,您可能需要创建 FaceUp 和 FaceDown 状态。

Dd185499.alert_note(zh-cn,Expression.10).gif说明:

当您修改系统控件(例如按钮)的模板时,已具有默认的状态组和状态。此时,无法添加新的状态组或状态。

定义用户控件的状态组

  1. 如果您还没有用户控件,可以在 Silverlight 2 项目中创建新用户控件,然后打开相应的 XAML 文件加以编辑。

    Dd185499.alert_tip(zh-cn,Expression.10).gif提示:

    您还可以定义有关主要文档的状态组(通常为 Page.xaml)。

  2. “交互“面板的”状态“窗格中将显示用户控件中各对象的默认外观。无论您何时准备退出状态记录模式(例如当您准备向文档中添加更多的对象时),都可选择“Base”。

    Dd185499.2daa57d7-1466-43ca-86e8-960aaa384148(zh-cn,Expression.10).png

  3. 在“状态”下,单击“添加状态组”Dd185499.46de5414-36ac-4603-9fd6-aa55fc2c8093(zh-cn,Expression.10).png 按钮。

    此时,便会添加新的状态组,并且突出显示相应的名称以便您能够输入新的名称。

    Dd185499.b3335795-6267-4f9d-8fa2-618c40ff2f32(zh-cn,Expression.10).png

    您既可以直接向状态组中添加状态,也可以添加更多的状态组。

向状态组中添加状态

  1. 在“状态”下方的状态组名称的旁边,单击“添加状态”Dd185499.1a937ec9-9a57-4cb9-9187-275e73c9fc8b(zh-cn,Expression.10).png 按钮。

    此时,新的状态便会添加到该状态组中,并且突出显示相应的名称以便您能够输入新的名称。

    Dd185499.91a3aada-a295-40c0-bed8-c7bc572df7d9(zh-cn,Expression.10).png

  2. 选中该状态以启用状态记录功能。这样一来,便可针对所选状态来记录文档中的对象外观所做的更改。

    Dd185499.59996960-c66b-4be0-abc9-5509c79f3a5d(zh-cn,Expression.10).png

    Dd185499.alert_tip(zh-cn,Expression.10).gif提示:

    您在指定状态和状态组时,需要考虑用户控件所要显示的所有可视状态,然后确定不希望同时显示的状态。由于一次只能显示状态组中的一个状态,因此这些状态应列入同一状态组中。例如,下图显示的用户控件代表扑克游戏中的一张扑克牌。在此定义了以下两个状态组:MouseInteractionSideDisplayedMouseInteraction 状态组中包括 ClickMouseOverNormal 的状态,这些状态不会同时显示。SideDisplayed 状态组中包括显示牌面朝上 (FaceUp) 和牌面朝下 (FaceDown) 的状态。扑克牌的牌面可以朝上,与此同时也可以将鼠标指针移到这张牌上,因此这些状态属于不同的状态组。

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

设置用户控件转变状态的过渡时间

  • 若要设置用户控件按照状态组的任意两个状态进行转变的过渡时间,可单击“默认过渡持续时间”文本框内部,然后输入新的时间。由此,便可设置用户控件按照状态组的任意状态进行过渡所用的时间。

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

  • 若要替代特定过渡的默认过渡时间,可单击状态旁边的“添加过渡”Dd185499.6023baa2-015d-4eb5-93d4-7c79f0d69e90(zh-cn,Expression.10).png 按钮,然后从显示的列表中选择特定的过渡。下图中由鼠标指针突出显示的列表项表明“从 Click 状态转变为任何其他状态”,其中箭头与“转变方向”相对应,星号 (*) 与“任意状态”相对应。

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

    单击“过渡持续时间”文本框内部,然后输入新的时间。

    Dd185499.de14af5e-81fd-4f47-a668-41552a565714(zh-cn,Expression.10).png

疑难解答

后续步骤

  • 您可以让用户控件对鼠标点击做出响应。有关详细信息,请参阅更改用户交互的响应状态

  • 您可以添加动画,例如当鼠标指针移到按钮上时,按钮将螺旋盘转。有关详细信息,请参阅添加状态改变后显示的动画

  • 您可以通过 Expression 社区网站(此链接可能指向英文页面)上提供的“操作方式”视频教程来观看有关状态和状态组的实际应用方案。