簡體   English   中英

WPF中的SaveFileDialog錯誤

[英]SaveFileDialog bug in WPF

我正在使用Microsoft.Win32.SaveFileDialog類保存文件。 保存文件並最小化我的應用程序時,我無法將其還原。 僅在使用Microsoft.Win32.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
}

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

當您顯示沒有父窗口的對話框時,WPF會出現各種奇怪的模態問題。 我還沒有直接通過SaveFileDialog看到它,但是其他對話框卻表現出類似的行為。 嘗試在父窗口中傳遞.ShowDialog()的重載。

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

怎么了:

  • 使用ShowDialog()打開OpenFileDialog時,模態狀態被破壞/完全丟失,可以單擊主窗口

什么時候發生:

  • OpenFileDialog打開之前有一個任務在運行
  • 在運行任務之前,調試器會進入斷點

只需創建一個帶有按鈕單擊事件的簡單WPF應用程序即可:

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

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

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

使用重載的ShowDialog(Window owner)函數可以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM