AvaloniaUI的OpenFileDialog和SaveFileDialog-如何检测取消按钮被点击?
创始人
2024-11-12 19:00:47
0
  1. 在OpenFileDialog和SaveFileDialog实例化之后,可以通过注册CancelButtonClicked回调函数来检测取消按钮是否被点击。

示例代码如下:

// 创建一个OpenFileDialog示例
var openFileDialog = new OpenFileDialog();

// 注册CancelButtonClicked回调函数
openFileDialog.CancelButtonClicked += (sender, args) =>
{
    Console.WriteLine("Cancel button was clicked.");
};

// 创建一个SaveFileDialog示例
var saveFileDialog = new SaveFileDialog();

// 注册CancelButtonClicked回调函数
saveFileDialog.CancelButtonClicked += (sender, args) =>
{
    Console.WriteLine("Cancel button was clicked.");
};
  1. 可以通过给OpenFileDialog和SaveFileDialog传递 CancellationTokenSource 实例来实现取消操作,这样当用户点击取消按钮时,CancellationTokenSource会被取消。

示例代码如下:

// 创建一个CancellationTokenSource示例
var cts = new CancellationTokenSource();

// 创建一个OpenFileDialog示例,并将CancellationTokenSource实例传递给它
var openFileDialog = new OpenFileDialog(cts.Token);

// 调用ShowAsync方法,此时可以在其他线程中检测CancellationTokenSource是否已被取消
var result = await openFileDialog.ShowAsync();

if (cts.IsCancellationRequested)
{
    Console.WriteLine("Cancel button was clicked.");
}
else if (result.Length > 0)
{
    Console.WriteLine($"Selected file: {result[0]}");
}

// 创建一个SaveFileDialog示例,并将CancellationTokenSource实例传递给它
var saveFileDialog = new SaveFileDialog(cts.Token);

// 调用ShowAsync方法,此时可以在其他线程中检测CancellationTokenSource是否已被取消
var result = await saveFileDialog.ShowAsync();

if (cts.IsCancellationRequested)
{
    Console.WriteLine("Cancel button was clicked.");
}
else if (result != null)
{
    Console.WriteLine($"Selected file: {result}");
}

注意:为了使CancellationTokenSource实例在用户关闭对话框时得到释放,必须在使用之后及时清理(调用Dispose方法)。

相关内容

热门资讯

透视透视"wepok... 透视透视"wepoker钻石怎么看底牌"详细辅助2025教程(私人局透视教程技巧);玩家必备必赢加哟...
透视智能ai"wep... 透视智能ai"wepoker私人局俱乐部"详细辅助曝光教程(黑侠破解辅助)是一款可以让一直输的玩家,...
透视神器"wepok... 透视神器"wepoker透视挂底牌"详细辅助新2025版(是有挂软件软件)关于wepoker透视挂底...
透视系统"福建大菠萝... 1、透视系统"福建大菠萝万能辅助器"详细辅助科技教程(可以挂底牌透明)。2、福建大菠萝万能辅助器透视...
透视有挂"wepok... 1、透视有挂"wepoker辅助器激活码"详细辅助2025版教程(底牌透视神器)。2、wepoker...
透视ai代打"wep... 1、透视ai代打"wepoker高级辅助"详细辅助实用技巧(高级辅助神器)(UU poker、wep...
透视黑科技"hhpo... 透视黑科技"hhpoker软件可以玩吗"详细辅助插件教程(私人局外卦软件)1、许多玩家不知道hhpo...
透视能赢"哈糖大菠萝... 透视能赢"哈糖大菠萝万能挂"详细辅助玩家教你(辅助器v3.3教程);原来确实真的有挂(需添加指定薇1...
透视好友"hhpok... 透视好友"hhpoker作弊码"详细辅助黑科技教程(轻量版辅助软件)是一款可以让一直输的玩家,快速成...
透视中牌率"哈糖大菠... 透视中牌率"哈糖大菠萝有挂吗5个常用方法"详细辅助透牌教程(开挂技巧)是由北京得哈糖大菠萝有挂吗5个...