Silverlight和桌面拖放

Silverlight和桌面拖放,silverlight,silverlight-3.0,Silverlight,Silverlight 3.0,在silverlight中,是否能够将文件从桌面拖放到浏览器中?我似乎记得在Silverlight3中看到了一些关于它的特性 我最近对此进行了研究,根据以下线程中Silverlight MVP的帖子,Silverlight 3不支持文件系统拖放 Silverlight 4现在似乎支持以下功能: 您可以在silverlight 4及更高版本的应用程序中从桌面拖放。选中silverlight项目属性中的“需要提升权限”,并使用silverlight datagrid的drop事件,可以在silve

在silverlight中,是否能够将文件从桌面拖放到浏览器中?我似乎记得在Silverlight3中看到了一些关于它的特性

我最近对此进行了研究,根据以下线程中Silverlight MVP的帖子,Silverlight 3不支持文件系统拖放

Silverlight 4现在似乎支持以下功能:


您可以在silverlight 4及更高版本的应用程序中从桌面拖放。选中silverlight项目属性中的“需要提升权限”,并使用silverlight datagrid的drop事件,可以在silverlight datagrid中处理从桌面进行的拖放

private void DocumentsDrop(object sender, DragEventArgs e)
  {
e.Handled = true;

var point = e.GetPosition(null);
var dataGridRow = ExtractDataGridRow(point);
if(dataGridRow !=null)
{.....
 }

var droppedItems = e.Data.GetData(DataFormats.FileDrop) as      FileInfo[];
if (droppedItems != null)
     {
        var droppedDocumentsList = new List<FileInfo>();

        foreach (var droppedItem in droppedItems)
        {
            if ((droppedItem.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
            {
                var directory = new DirectoryInfo(droppedItem.FullName);
                droppedDocumentsList.AddRange(directory.EnumerateFiles("*", SearchOption.AllDirectories));
            }
            else
            {
                droppedDocumentsList.Add(droppedItem);
            }
        }

        if (droppedDocumentsList.Any())
        {
            ProcessFiles(droppedDocumentsList);
        }
        else
        {
            DisplayErrorMessage("The selected folder is empty.");
        }
    }
 }
private void DocumentsDrop(对象发送方,DragEventArgs e)
{
e、 已处理=正确;
var点=e.GetPosition(空);
var dataGridRow=提取dataGridRow(点);
if(dataGridRow!=null)
{.....
}
var droppedItems=e.Data.GetData(DataFormats.FileDrop)作为FileInfo[];
if(droppedItems!=null)
{
var droppedDocumentsList=新列表();
foreach(droppedItem中的var droppedItem)
{
if((droppedItem.Attributes&FileAttributes.Directory)==FileAttributes.Directory)
{
var directory=newdirectoryinfo(droppedItem.FullName);
droppedDocumentsList.AddRange(directory.EnumerateFiles(“*”,SearchOption.AllDirectory));
}
其他的
{
droppedDocumentsList.Add(droppedItem);
}
}
if(droppedDocumentsList.Any())
{
处理文件(droppedDocumentsList);
}
其他的
{
DisplayErrorMessage(“所选文件夹为空”);
}
}
}
设置AllowDrop=true;在数据网格的xaml中。从DragEventArgs中,将信息提取为FileInfo对象。
我不确定是否可以使用Silverlight 3应用程序

Bah,我已经浪费了整个骑车回家的时间来规划一个很酷的应用程序。感谢此功能现已在Silverlight 4中提供: