我怎么知道切换到特定的VisualState是否结束?

时间:2010-11-08 10:56:19

标签: silverlight silverlight-4.0

切换到特定VisualState时,如何通知我?

实施例。 VisualStateManager.GoToState(this, "UnloadState", true);

在上述情况下,我希望在切换到UnloadedState完成后收到通知。

提前致谢:)

1 个答案:

答案 0 :(得分:2)

如果这是UserControl,那么它非常直接,你可以简单地将完成的事件处理程序添加到与状态相关联的StoryBoard: -

<VisualState x:Name="UnloadState">
   <Storyboard Completed="UnloadState_Completed">

然后在代码中: -

 void UnloadState_Completed(object sender, EventArgs e)
 {
    // Do stuff when complete
 }

然而,在模板化控制中,事情会复杂一些。您不会知道模板是否具有这样的状态,并且您无法与Xaml连接。但是在OnApplyTemplate中,您应该能够找到VisualState FindName,然后您可以在代码中附加事件处理程序。您应该在一个字段中保存VisualState对象,以便您可以正确地处理分离事件处理程序。