我的wpf应用程序中发生了一件非常奇怪的事情。
每当我关闭某个东西(一个对话框,一个窗口等......)时,ENTIRE应用程序就会关闭,而不是只关闭正在关闭的窗口/对话框。
这不仅发生在我直接调用Close方法时,而且当元素单独关闭时,例如:当我在Dialog上单击“OK”并从ShowDialog()方法返回时。
此外,这不会立即发生,但仅限于关闭事件发生的方法。这是一个更好地解释它的例子:
Public Sub addNewCanvas(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
Dim dlg As New addCanvasDgBox
Dim result As Nullable(Of Boolean) = dlg.ShowDialog
'The following if is executed, and so is the addCanvas() method
If (result = True) Then
addCanvas()
End If
End Sub
'Here comes the problem: efter the routine is ended instead of returning
'to the normal execution, the entire App.Run() method returns, closing the application
我真的不明白为什么会发生这种情况......没有引发异常,输出日志或visualStudio无话可说,所有变量都被正确定价。
如果您有任何想法,请告诉我们!这让我疯了! 提前谢谢。
Master_T
答案 0 :(得分:1)
留意未处理的例外情况: 在调试中启动应用程序并打开例外窗口(调试 - >例外或我的机器上的Ctrl + Alt + E)并检查公共语言运行时例外,投掷柱。 然后执行正常操作,看看是否抛出任何未处理的异常。
让我知道这是否让你更接近问题。
答案 1 :(得分:1)
好的,在提出问题后不久就知道了(当然......你通过了一个小时想知道,然后你在寻求帮助后找到问题的时刻:D)
问题是我正在处理的应用程序是由前一名员工启动的,我刚才注意到他用一种奇怪的方式来启动应用程序。他基本上将Application实例传递给GUI,然后用自己的实例初始化Application ...真的不明白为什么他做了这么奇怪的事情,无论如何我用这种方式解决问题:
app.ShutdownMode = ShutdownMode.OnExplicitShutdown
Thnx无论如何都要求帮助! (顺便说一下,它没有任何例外......)
答案 2 :(得分:0)
也许有一个未处理的异常发生,你没有抓住。尝试将事件处理程序附加到应用程序类DispatcherUnhandledException
事件。