在WPF中切换可视化状态时发生致命运行时错误

本文关键字:运行时错误 状态 WPF 可视化 | 更新日期: 2023-09-27 18:09:08

在特定情况下,我有时会遇到这个错误。它恰好发生在我从一种视觉状态切换到另一种视觉状态的时候。我假设它来自一个糟糕的属性动画,但我想知道这个异常发生的条件是什么。下面是错误信息:

运行时遇到致命错误。错误的地址是0x58e3ba0d,在线程0xabc上。错误码为0x80131623。此错误可能是CLR中的错误,也可能是用户代码中不安全或不可验证部分中的错误。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会损坏堆栈。

提前感谢

在WPF中切换可视化状态时发生致命运行时错误

我想我找到了解释:在状态转换期间,我试图折叠部分UI。在这些部分中,有一些控件(按钮)附加了几个行为。

经过一些测试后,我注意到折叠具有附加行为的控件似乎会抛出异常。崩溃删除对对象的引用,附加的行为留下一个空引用,使其抛出异常。我不知道到底发生了什么,但我很确定这就是原因。这似乎也发生在"隐藏的"可见性中。因此,我目前找到的唯一解决方法是降低控件的不透明度,并将其高度设置为0。

如果有人找到更好的方法来避免这个问题…