簡體   English   中英

Silverlight和桌面拖放

[英]Silverlight and desktop drag and drop

在Silverlight中,是否可以將文件從桌面拖放到瀏覽器中? 我似乎還記得我在Silverlight 3中看到過一些功能。

我最近對此進行了調查,並基於以下線程中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/

您可以在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中表示datagrid。 從DragEventArgs中提取信息作為FileInfo對象。 我不確定與此Silverlight 3應用程序一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM