C# WPF中的SaveFileDialog错误

C# WPF中的SaveFileDialog错误,c#,.net,wpf,openfiledialog,savefiledialog,C#,.net,Wpf,Openfiledialog,Savefiledialog,我正在使用Microsoft.Win32.SaveFileDialog类保存我的文件。当我保存文件并最小化我的应用程序时,我无法将其还原回来。只有在使用Microsoft.Win32.SaveFileDialog后才会发生这种情况。以下是代码: Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = String.Format("{0} {1} {2}", ev["b"],

我正在使用
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
}
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=“支持的格式(.csv)|*.csv”;
可为空的结果=dlg.ShowDialog();
如果(结果==真)
{
字符串s=dlg.FileName;
//其他代码
}

文件保存成功,但我不知道如何解决最小化问题。有人知道它可能是什么吗?

当您在没有父窗口的情况下显示对话框时,WPF会出现各种奇怪的模态问题。我没有在SaveFileDialog中直接看到这一点,但是我在其他对话框中看到了类似的行为。尝试使用在父窗口中传递的.ShowDialog()重载。

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();
    }
private void按钮\u单击(对象发送者,路由目标)
{/{}.Wait();
新建Microsoft.Win32.OpenFileDialog().ShowDialog();
}

使用重载的
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();
    }
private void按钮\u单击(对象发送者,路由目标)
{/{}.Wait();
新建Microsoft.Win32.OpenFileDialog().ShowDialog();
}

使用重载的
ShowDialog(窗口所有者)
函数可以解决此问题。

后面是什么
//其他代码
?可能会连接到FileOK事件,并查看是否可以在那里捕获错误。只需到达。@aleksey.berezan将字符串写入文件。
//其他代码
?可能连接到FileOK事件,看看您是否可以在那里捕获错误。只需到达。@aleksey.berezan将字符串写入文件。
尝试使用在父窗口中传递的.ShowDialog()重载。
,可能是,我在WinForms中遇到了相同的问题和解决方案
尝试使用在父窗口中传递的.ShowDialog()重载。
,可能是,我在WinForms中遇到了相同的问题和解决方案