Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 当出现以下情况时,如何关闭WPF应用程序;X";按钮被点击_C# 4.0_Application Shutdown - Fatal编程技术网

C# 4.0 当出现以下情况时,如何关闭WPF应用程序;X";按钮被点击

C# 4.0 当出现以下情况时,如何关闭WPF应用程序;X";按钮被点击,c#-4.0,application-shutdown,C# 4.0,Application Shutdown,我是WPF新手,注意到我的应用程序在单击“X”按钮退出窗口后一直在运行。我以前编程过GUI,所以我知道这很常见。然而,当我研究这个问题时,无论我找到什么解决办法,似乎都没有任何意义 我已经找到了这个解决方案,但似乎我没有正确地实现它。我希望我的应用程序关闭“OnMainWindowClose”。这是一个与我的问题几乎相同的问题,我认为在被接受的答案中没有得到足够清楚的解释 按照Application.ShutdownMode解决方案,我的MainWindow.xaml文件中有以下内容: <

我是WPF新手,注意到我的应用程序在单击“X”按钮退出窗口后一直在运行。我以前编程过GUI,所以我知道这很常见。然而,当我研究这个问题时,无论我找到什么解决办法,似乎都没有任何意义

我已经找到了这个解决方案,但似乎我没有正确地实现它。我希望我的应用程序关闭“OnMainWindowClose”。这是一个与我的问题几乎相同的问题,我认为在被接受的答案中没有得到足够清楚的解释

按照
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所建议的,您的应用程序应该以任何方式以默认设置关闭,我建议您进行更多的调试,以查看是否有任何东西阻止关闭。我将此标记为我的答案,因为从技术上讲,它确实解决了我的编译器错误,但我在调试过程中发现了一个阻止关闭的错误。