2013-07-15 108 views
1

我是WPF的新手,并且注意到我的应用程序在单击“X”按钮退出窗口后继续运行。我之前编写过GUI,所以我知道这很常见。但是,当我研究这个问题时,无论我找到什么解决方案似乎都没有任何意义。当点击“X”按钮时,如何关闭WPF应用程序

我发现这个Applicaton.ShutdownMode解决方案,但它似乎我没有正确实施它。我希望我的应用程序关闭“OnMainWindowClose”。 This是一个几乎与我的相同的问题,我认为在接受的答案中解释不够清楚。

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的所有对象必须有一个关键属性或其他一些与它们相关联的键的类型“。我在这里做错了什么,以及我如何正确实现我的关机功能?

谢谢。

+1

这很可能不是WPF的特定问题。我的猜测是你开始一个线程,当你试图关闭你的应用程序时,它既没有标记为背景也没有完成。 –

+0

我不能删除wpf标签而不是启动全新的线程吗? –

+0

你确定问题不在于我的ShutdownMode编码不正确吗?在我的App.xaml文件中,我有'ShutdownMode =“OneMainWindowClose”',但程序在后台继续点击“x” –

回答

2

您不会将Application标签放入您的Window。在您的解决方案,你有app.xaml你应该把你的:

ShutdownMode="OnMainWindowClose" 

和报价MSDN

主窗口与在第一窗口对象的引用自动设置为在AppDomain中被实例化。

+0

OOOOH,好的。灯泡...我把它放在那个文件中,但是我的Window1不能被设置为“主窗口”,因为当我关闭主窗口时x按钮没有关闭应用程序。 –

+0

'app.xaml'中的'StartupUri'是什么?它是你的'MainWindow'吗? – dkozl

+0

StartupUri是“Window1.xaml” –

相关问题