【问题标题】:Silverlight and desktop drag and dropSilverlight 和桌面拖放
【发布时间】:2009-09-03 03:35:25
【问题描述】:

silverlight 中是否可以将文件从桌面拖放到浏览器中?我似乎记得在 Silverlight 3 中看到了一些关于它的功能。

【问题讨论】:

    标签: silverlight silverlight-3.0


    【解决方案1】:

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

    http://betaforums.silverlight.net/forums/t/117317.aspx?PageIndex=1

    Silverlight 4 现在似乎支持这一点:

    http://www.silverlight.net/learn/videos/silverlight-4-beta-videos/silverlight-controls-drop-targets/

    【讨论】:

    【解决方案2】:

    您可以在 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.");
            }
        }
     }
    

    设置 AllowDrop =true;在数据网格的 xaml 中。从 DragEventArgs 中提取信息作为 FileInfo 对象。 我不确定这是否适用于 Silverlight 3 应用程序

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多