2009-09-03 1 views

답변

3

나는 최근이로보고, 다음과 같은 스레드에서 실버 라이트 MVP에서 게시물을 기반으로, 실버 라이트 3 파일 시스템 드래그를 지원하지 않습니다 하락.

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

그것은 실버 라이트 4는 지금이 지원 나타납니다

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

+0

바하마, 멋진 응용 프로그램을 계획하고 집 전체 자전거를 낭비했습니다. 감사합니다 – stimms

+0

이것은 Silverlight 4에서 사용할 수 있습니다 : http://www.silverlight.net/learn/videos/silverlight-4-beta-videos/silverlight-controls-drop-targets/ –

0

당신은 드래그 앤 실버 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로 설정하십시오. DataGrid에 대한 xaml. DragEventArgs에서 정보를 FileInfo Object로 추출하십시오. Silverlight 3 응용 프로그램에서이 작업을 수행 할 것인지 잘 모르겠다.