You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现桌面端MAUI应用文件拖入?是否存在相关Bug?

MAUI Windows拖入文件Bug说明及解决方案
  • 该Bug确实存在于.NET MAUI的早期版本(主要是.NET 7及之前),表现为使用Microsoft.Maui.Controls.DropGestureRecognizer无法接收来自Windows资源管理器的文件数据。
  • .NET 8正式版本已修复此问题,如果你基于.NET 8或更高版本开发Windows桌面MAUI应用,拖入文件功能可正常工作。
  • macOS平台的DropGestureRecognizer不存在此特定Bug,从Finder拖入文件的功能在各主流MAUI版本中均可正常使用。

简单实现示例

在XAML中添加手势识别器:

<ContentView>
    <ContentView.GestureRecognizers>
        <DropGestureRecognizer Drop="OnDrop" />
    </ContentView.GestureRecognizers>
</ContentView>

在代码后台处理拖入事件:

private async void OnDrop(object sender, DropEventArgs e)
{
    if (e.DataView.Contains(StandardDataFormats.Files))
    {
        var files = await e.DataView.GetFilesAsync();
        foreach (var file in files)
        {
            // 处理拖入的文件,比如获取路径
            var filePath = file.FullPath;
            // 执行你的业务逻辑
        }
    }
}

额外注意事项

  • Windows平台:确保项目目标框架为.NET 8+,若仍使用旧版本,可考虑升级框架来解决该Bug。
  • macOS平台:若需要限制可拖入的文件类型,可在项目的Info.plist中添加对应的文档类型声明,避免接收无关文件。

内容的提问来源于stack exchange,提问作者Gabriele Tedeschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:32:01