2013-07-15 130 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」 –

相關問題