在视觉状态之间切换时 WPF 中的致命运行时错误

Posted

技术标签:

【中文标题】在视觉状态之间切换时 WPF 中的致命运行时错误【英文标题】:Fatal Runtime Error in WPF when switching between visual states 【发布时间】:2011-09-21 13:12:04 【问题描述】:

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

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

提前谢谢你

【问题讨论】:

更精确的帮助:我有一个按钮并附加了一个 GoToStateBehavior 来更改视觉状态。在新状态下,按钮是折叠的。因此,我假设您不能折叠触发 GoToStateAction 的对象。也许按钮对象在触发动作的那一刻就被破坏了......有人可以确认这个版本,添加精度或给出其他解释吗? 【参考方案1】:

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

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

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

【讨论】:

其实不是这个解释...去掉行为后我还是有问题...

以上是关于在视觉状态之间切换时 WPF 中的致命运行时错误的主要内容,如果未能解决你的问题,请参考以下文章

C# WPF 数据触发器

docker-compose RabbitMQ与Nodejs接收端同时运行时的错误

当 UDF 使用一些外部资源文件但在本机运行时,为啥 Hive 错误 FileNotFoundException?

Blend 2015中缺少状态转换效果

删除行时需要 Excel VBA 运行时错误“424”对象

SwiftUI点击任意文本在只读与可编辑之间随意切换的实现