![]() |
1
3
我认为这个问题有两个部分:如何连接自己的异常处理程序以允许应用程序继续,以及是否可以重用Windows窗体未处理的异常UI。 有关第一部分,请参见application.dispatcherUnhandledException。如果订阅此事件,并且事件处理程序将DispatcherUnhandledExceptionEventArgs.handled设置为true,则WPF将跳过默认的未处理异常处理,即应用程序不会自动关闭。(当然,事件处理程序仍然可以关闭它。)默认情况下,handled未设置为true,因此必须显式执行此操作。 有关第二部分,请参见System.Windows.Forms.ThreadExceptionDialog。这是正式的“不打算从您的代码中使用”,并且没有以任何有用的方式记录下来,所以在生产应用程序中依赖它是不明智的。但是,如果您愿意冒险,那么您可以创建这个类的一个实例,并将其显示为showDialog()。在.NET 3.5中,它返回dialogresult.cancel,表示“忽略异常并继续”,dialogresult.abort,表示“退出”。这些值没有记录,但应该作为实现细节处理! |
![]() |
2
3
好的,我在winforms源中进行了深入研究,结果发现标准winforms异常对话框是公共的。因此,您需要使用WPF样式的DispatcherUnhandledException处理程序,并执行如下操作:
您需要添加对system.windows.forms的引用,并且可能需要在应用程序类上稍微使用名称空间,但是其他人可能会发现它对于简单的实用程序很有用。 |
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 2 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |