C#/AvaloniaUI - 打开文件夹对话框
C#/AvaloniaUI - OpenFolderDialog
我正在使用 AvaloniaUI 并且我正在尝试实现:http://avaloniaui.net/api/Avalonia.Controls/OpenFolderDialog/
我想要实现的是当我按下一个按钮时它触发 openFold
显示一个对话框让我选择一个目录。一旦我 select 一个目录,我想将它的路径存储在 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);
}
但是我不知道如何将当前的主要 window 传递给 ShowAsync
。
我不确定即使我将当前 window 传递给 ShowAsync
它是否会显示一个选择目录对话框。我做得对吗?
我刚刚检查了一个 AvaloniaUI 应用程序,其中我 运行 你的代码(await openFold(result)
除外,因为你没有提供该方法的实现)。
不过,一切正常,我正在打开文件夹选择 window,我可以选择文件夹,它在 result
中返回。
它在给定和不给定 window
参数的情况下都有效,因为它是可选的。
如果 openFold()
方法定义在 MainWindow
class 中,您只需 运行
var result = await dialog.ShowAsync(this);
如果您想将方法放在其他地方,请为主要内容创建一个静态访问器变量 window:
public static MainWindow Instance;
在构造函数中赋值:
Instance = this;
并通过以下方式调用您的文件夹选择 window:
var result = await dialog.ShowAsync(MainWindow.Instance);
还是我误解了你的问题?
我正在使用 AvaloniaUI 并且我正在尝试实现:http://avaloniaui.net/api/Avalonia.Controls/OpenFolderDialog/
我想要实现的是当我按下一个按钮时它触发 openFold
显示一个对话框让我选择一个目录。一旦我 select 一个目录,我想将它的路径存储在 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);
}
但是我不知道如何将当前的主要 window 传递给 ShowAsync
。
我不确定即使我将当前 window 传递给 ShowAsync
它是否会显示一个选择目录对话框。我做得对吗?
我刚刚检查了一个 AvaloniaUI 应用程序,其中我 运行 你的代码(await openFold(result)
除外,因为你没有提供该方法的实现)。
不过,一切正常,我正在打开文件夹选择 window,我可以选择文件夹,它在 result
中返回。
它在给定和不给定 window
参数的情况下都有效,因为它是可选的。
如果 openFold()
方法定义在 MainWindow
class 中,您只需 运行
var result = await dialog.ShowAsync(this);
如果您想将方法放在其他地方,请为主要内容创建一个静态访问器变量 window:
public static MainWindow Instance;
在构造函数中赋值:
Instance = this;
并通过以下方式调用您的文件夹选择 window:
var result = await dialog.ShowAsync(MainWindow.Instance);
还是我误解了你的问题?