gpt4 book ai didi

C#/AvaloniaUI - 打开文件夹对话框

转载 作者:行者123 更新时间:2023-12-05 05:05:08 24 4
gpt4 key购买 nike

我正在使用 AvaloniaUI 并尝试实现:http://avaloniaui.net/api/Avalonia.Controls/OpenFolderDialog/

我想要实现的是,当我按下一个按钮时,它会触发 openFold 以显示一个对话框,让我选择一个目录。选择目录后,我想将其路径存储在 var result 中。

这是我的代码:

public async Task openFold()
{
var dialog = new OpenFolderDialog();
var result = await dialog.ShowAsync();

if (result != null)
{
await openFold(result);
}
Trace.WriteLine("DIR IS: " + result);
}

但是我不知道如何将当前主窗口传递给 ShowAsync

我不确定即使我将当前窗口传递给 ShowAsync 它也会显示一个选择目录对话框。我做得对吗?

最佳答案

我刚刚检查了一个 AvaloniaUI 应用程序,我在其中运行了您的代码(await openFold(result) 除外,因为您没有提供该方法的实现)。

尽管如此,一切正常,我正在打开文件夹选择窗口,我可以选择文件夹并在 result 中返回。

它在给定和不给定 window 参数的情况下都有效,因为它是可选的。

如果 openFold() 方法是在 MainWindow 类中定义的,您只需运行
var result = await dialog.ShowAsync(this);

如果您想将该方法放在其他地方,请为主窗口创建一个静态访问器变量:
公共(public)静态主窗口实例;
在构造函数中赋值:
Instance = this;
并通过以下方式调用您的文件夹选择窗口:
var result = await dialog.ShowAsync(MainWindow.Instance);

还是我误解了你的问题?

关于C#/AvaloniaUI - 打开文件夹对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60643375/

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