首页 > 解决方案 > 在 Windows 应用程序中拖放项目并获取项目的 StandardDataFormats

问题描述

我正在开发一个 Windows 应用程序,在其中拖放一个项目(文件、文件夹、URL、文本等),然后我想检查拖放的项目StandardDataFormats [StorageItems 或 WebLink 或文本]。

这是我的实现思路:

void DroppedItems(object sender, DragEventArgs items) 
{
    if (items.DataView.Contains(StandardDataFormats.StorageItems))
    {
        //Do something
    }
    if (items.DataView.Contains(StandardDataFormats.WebLink))
    {
        //Do something
    }
    if (items.DataView.Contains(StandardDataFormats.Text))
    {
        // Do something
    }
}

此实现适用于文件、文件+文件夹和文本,但是当我删除任何网络链接时,所有 if 语句都会被执行。如何检查StandardDataFormats以便在我删除 Web 链接时只执行我的第二个 if 语句。

标签: uwpdrag-and-drop

解决方案


在 Windows 应用程序中拖放项目并获取项目的 StandardDataFormats

问题是丢弃的项目是 WebLink 以及 Internet 快捷方式。所以它将执行第二条语句。对于这种情况,我们建议您使用 if-else 语句,并将 WebLink 放在第一个语句中,如果为真则跳过后面的语句。

if (e.DataView.Contains(StandardDataFormats.WebLink))
{

    //Do something
}
else if (e.DataView.Contains(StandardDataFormats.StorageItems))
{
    //Do something
}
else if (e.DataView.Contains(StandardDataFormats.Text))
{
    // Do something

}

推荐阅读