2012-03-26 84 views
2

我使用Microsoft.Win32.SaveFileDialog類來保存我的文件。當我保存文件,並儘量減少我的應用程序,我無法恢復它。只有在使用Microsoft.Win32.SaveFileDialog後纔會發生。這裏是代碼:WPF中的SaveFileDialog錯誤

Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); 
dlg.FileName = String.Format("{0} {1} {2}", ev["b"], ev["a"], ev["c"]); 
dlg.DefaultExt = ".csv"; 
dlg.Filter = "Supported format (.csv)|*.csv"; 
Nullable<bool> result = dlg.ShowDialog(); 
if (result == true) 
{ 
    string s = dlg.FileName; 
    //other code 
} 

文件保存成功,但我不知道如何解決問題與最小化。有人知道它可能是什麼嗎?

+1

令人難以置信...... – 2012-03-26 15:42:12

+1

//其他代碼背後是什麼? – 2012-03-26 15:43:50

+0

也許連線到FileOK事件,並看到你可以在那裏發現一個錯誤。只是伸手可及。 – Paparazzi 2012-03-26 16:21:43

回答

3

當您顯示沒有父窗口的對話框時,WPF有各種奇怪的形式問題。我沒有直接看到這個SaveFileDialog,但我看到了與其他對話類似的行爲。嘗試使用在父窗口中傳遞的.ShowDialog()的重載。

+0

'嘗試使用.ShowDialog()在父窗口中傳遞的重載.',可能是,我在WinForms中有同樣的問題和解決方案 – 2012-03-26 16:19:46

+0

我會盡力的,謝謝! – 2012-03-26 17:43:11

1

我遇到了WPF和Win32的SaveFileDialog/OpenFileDialog的一個奇怪的模態問題。

會發生什麼:

  • 模式狀態被破壞/被完全丟失,同時打開文件對話框打開用的ShowDialog()

它什麼時候發生,可以點擊主窗口:

  • 有在打開文件對話框之前運行的任務打開
  • 調試器BR eaks到斷點運行任務

之前就創建一個按鈕單擊事件一個簡單的WPF應用程序:

private void Button_Click(object sender, RoutedEventArgs e) 
    { // <-- Breakpoint sits here 

     Task.Run(() => {}).Wait(); 

     new Microsoft.Win32.OpenFileDialog().ShowDialog(); 
    } 

使用重載ShowDialog(Window owner)功能解決了這個問題。