Как я могу узнать, закончилось ли переключение на конкретное VisualState или нет? - PullRequest
1 голос
/ 08 ноября 2010

Как я могу получить уведомление, когда переключение на определенное VisualState завершено или нет?

Пример. VisualStateManager.GoToState(this, "UnloadState", true);

В вышеупомянутом случае я хочу получать уведомления, когда переключение на UnloadedState завершено.

Заранее спасибо:)

1 Ответ

2 голосов
/ 08 ноября 2010

Если это в 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 в поле, чтобы вы могли правильно обрабатывать отсоединение обработчика событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...