在Windows通用应用程序上拖放文件

Drag and drop a file on Windows Universal App

本文关键字:程序上 拖放 文件 应用程序 应用 Windows      更新时间:2023-10-16

如何在Windows通用应用程序上拖放文件?

我找到的唯一一个教程是:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlDragAndDrop

然而,它在XAML UI对象上运行,而我有一个DirectX游戏,根本不使用XAML。

我只想把一个文件拖放到应用程序窗口(不是一个UI元素,而是整个窗口)上,然后在事件回调中获取文件的完整路径。

我使用的是C++,这需要用于Windows 10通用应用程序。

你能告诉我为什么你不想在这种情况下使用XAML吗?由于UWP XAML UI控件非常方便地支持拖放功能,而且它还支持通过C++与DX进行互操作。这个在线教程可能会有所帮助。从这个在线帮助中,您可以发现您可以自定义自己的控件,使其完全不显示UI。

如果你想在没有XAML帮助的情况下实现拖放文件,这将需要大量的工作:将文件拖动到你的UWP游戏意味着在应用程序之间共享数据,所以你的实现需要遵循UWP数据共享模式,这意味着你需要重新编码XAML UIElement已经封装的所有内容,例如:实现DropTarget控制模式。

对于您的情况,如果您只想打开文件,那么文件选取器会更简单方便。如果您仍然希望支持拖放,强烈建议对XAML和DX进行互操作。在这里你可以找到有用的指南。你可以用C++构建这个应用程序,这将满足你对节省内存和提高性能的担忧。

如果你有任何问题,请告诉我。