切换到特定VisualState时,如何通知我?
实施例。 VisualStateManager.GoToState(this, "UnloadState", true);
在上述情况下,我希望在切换到UnloadedState完成后收到通知。
提前致谢:)
答案 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对象,以便您可以正确地处理分离事件处理程序。