gpt4 book ai didi

c# - CommonOpenFileDialog 将我的窗口置于所有其他窗口之后

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:52 32 4
gpt4 key购买 nike

我正在使用 CommonOpenFileDialog(来自 Windows API 代码包)选择一个目录,然后它以某种方式将我的窗口发送到后面。这真的很令人沮丧,因为我必须在任务栏中找到它并再次单击它。

代码如下:

    public string ShowPickDirectoryDialog()
{
var dialog = new CommonOpenFileDialog { IsFolderPicker = true };
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
return dialog.FileName;
}
return null;
}

我在这里发现了一个类似的问题:

How to bring the main form back to the front after the file open dialog is closed

但我使用的是 WPF/MVVM 并且无权访问窗口对象,因此这些答案都不起作用。那么,当我无权访问窗口对象时,如何确保在使用 CommonOpenFileDialog 后我的窗口在前面呢?我也不能使用“TopMost”设置,因为这会将窗口放在目录选择器的前面。

或者有什么比我应该使用的 CommonOpenFileDialog 更好的东西吗(这并不难看)?

最佳答案

这很好用,但我更喜欢使用:

var window = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.IsActive);
var dialogResult = browserDialog.ShowDialog(window);

并且不要使用 window.Focus()

这使得窗口不会返回。

关于c# - CommonOpenFileDialog 将我的窗口置于所有其他窗口之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922735/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com