C# 4.0 当出现以下情况时,如何关闭WPF应用程序;X";按钮被点击
我是WPF新手,注意到我的应用程序在单击“X”按钮退出窗口后一直在运行。我以前编程过GUI,所以我知道这很常见。然而,当我研究这个问题时,无论我找到什么解决办法,似乎都没有任何意义 我已经找到了这个解决方案,但似乎我没有正确地实现它。我希望我的应用程序关闭“OnMainWindowClose”。这是一个与我的问题几乎相同的问题,我认为在被接受的答案中没有得到足够清楚的解释 按照C# 4.0 当出现以下情况时,如何关闭WPF应用程序;X";按钮被点击,c#-4.0,application-shutdown,C# 4.0,Application Shutdown,我是WPF新手,注意到我的应用程序在单击“X”按钮退出窗口后一直在运行。我以前编程过GUI,所以我知道这很常见。然而,当我研究这个问题时,无论我找到什么解决办法,似乎都没有任何意义 我已经找到了这个解决方案,但似乎我没有正确地实现它。我希望我的应用程序关闭“OnMainWindowClose”。这是一个与我的问题几乎相同的问题,我认为在被接受的答案中没有得到足够清楚的解释 按照Application.ShutdownMode解决方案,我的MainWindow.xaml文件中有以下内容: <
Application.ShutdownMode
解决方案,我的MainWindow.xaml文件中有以下内容:
<Window x:Class="CartToolsPrototype1.Window1" Background="White"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ResizeMode="CanMinimize"
Title="{DynamicResource CartTools}" Height="802" Width="950" WindowStartupLocation="CenterScreen" >
<Window.Resources>
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml"
ShutdownMode="OnMainWindowClose"
>
</Application>
编译器给了我一个错误:“添加到IDictionary的所有对象都必须有一个键属性或与之相关联的其他类型的键。”我到底做错了什么,如何正确实现关闭函数
谢谢。您没有将
应用程序
标记放入窗口
。在您的解决方案中,您有app.xaml
,您应该将您的:
ShutdownMode="OnMainWindowClose"
并引用:
MainWindow是通过引用AppDomain中要实例化的第一个窗口对象自动设置的
这很可能不是WPF特有的问题。我的猜测是,您启动了一个线程,但当您尝试关闭应用程序时,它既没有标记为后台,也没有完成。我不能删除wpf标记,而不是启动一个全新的线程吗?您确定问题不在于我的关机模式编码不正确吗?在我的App.xaml文件中,我有
ShutdownMode=“OneMainWindowClose”
,但当我单击“x”找到它时,程序会在后台继续运行。谢谢,好的。灯泡。。。我将它放在该文件中,但我的Window1不能设置为“主窗口”,因为当我关闭主窗口时,x按钮不会关闭应用程序。在app.xaml
中,您的StartupUri
是什么。这是您的main窗口吗
?StartupUri是“Window1.xaml”。我的解决方案只是告诉您如何更改关机模式
,以及如何处理您遇到的编译错误,但正如@GarryVass所建议的,您的应用程序应该以任何方式以默认设置关闭,我建议您进行更多的调试,以查看是否有任何东西阻止关闭。我将此标记为我的答案,因为从技术上讲,它确实解决了我的编译器错误,但我在调试过程中发现了一个阻止关闭的错误。