Подтвердить что ты не робот

Как отладить VisualStateManager во время выполнения

Есть очень полезные инструменты для отладки приложений WPF во время выполнения, например Snoop, WPF Inspector и Xaml Spy, которые позволяют вам заглянуть в запущенное приложение и отслеживать значения свойств, изменения DataContext, события маршрутизации и даже триггеры.

Но то, что мне не удалось найти ни в одном из них, - это способ, как отслеживать переход VisualStateManager (VSM) между состояниями на определенный выбранный элемент управления во время выполнения.

Есть ли какой-нибудь инструмент, который мог бы помочь выяснить, почему элемент управления не переходит в конкретное ожидаемое состояние (учитывая отсутствие исходного кода для этого приложения/библиотеки)?

Обновление: Вопрос в основном касается отладки скомпилированного кода, когда у вас нет доступа к источнику. Для случаев, когда у вас есть доступ к исходному коду вот довольно хорошее объяснение одного из способов выхода.

4b9b3361

Ответ 1

Есть несколько причин, по которым элемент управления не пересекает его состояния.

Может быть более одной VisualStateGroup, и ее назвали чем-то.

Вызов визуального состояния перед загрузкой элемента управления.

VisualState будет применяться только после вызова OnApplyTemplate управления.

если есть синтаксическая ошибка.

Как бы визуальные состояния не могли трактовать что-то, но его можно отлаживать с возвращаемым значением метода GoToState.

Надеюсь, это будет полезно.