Fatal Runtime Ошибка в WPF при переключении между визуальными состояниями

Я продолжаю иметь эту ошибку иногда в конкретном случае. Это происходит именно тогда, когда я перехожу из визуального состояния в другое. Я предполагаю, что это происходит из-за плохой анимации свойств, но мне интересно, в каких условиях возникает это исключение. Вот сообщение об ошибке:

Во время выполнения произошла фатальная ошибка. Адрес ошибки был 0x58e3ba0d в потоке 0xabc. Код ошибки 0x80131623. Эта ошибка может быть ошибкой в ​​CLR или в небезопасных или не поддающихся проверке частях пользовательского кода. Распространенными источниками этой ошибки являются ошибки пользовательского маршалинга для COM-взаимодействия или PInvoke, которые могут повредить стек.

заранее спасибо

1 ответ

Я думаю, что нашел объяснение: во время изменения состояния я пытался свернуть части интерфейса. Среди этих частей есть некоторые элементы управления (кнопки), к которым прикреплено несколько вариантов поведения.

После некоторых тестов я заметил, что свертывание элемента управления, к которому прикреплено поведение, похоже, вызывает исключение. Свертывание удаляет ссылку на объект, а присоединенное поведение остается с нулевой ссылкой, что вызывает исключение. Я не знаю точно, что происходит, но я уверен, что это причина. Кажется, что это происходит и со "скрытой" видимостью. Таким образом, единственный обходной путь, который я нашел на данный момент, - это уменьшение непрозрачности элемента управления и установка его высоты на 0.

Если кто-то нашел лучший способ избежать этой проблемы...

Другие вопросы по тегам