Silverlight 4中的檔案拖曳支持

在Silverlight 4當中,針對拖曳的行爲也有相當令人激賞的增強,這同時也讓Silverlight中OOB應用程序所能達成的效果又向傳統的WindowsForm應用程序逼近了一大步。

過去我們已經可以透過程序代碼在Silverlight應用程序的畫面中讓對象(element)們被拖曳,現在在Silverlight 4當中,我們甚至可以把實體檔案拖曳到瀏覽器上正在執行的Silverlight應用程序中。

Silverlight 4當中,針對所有的UIElement對象,增加了一個AllowDrop屬性,您可以直接將其設定爲True:

如此一來,該對象將被允許接收拖曳的檔案,也就是說,您可以從桌面、檔案總管等位置,把一個或多個檔案拖曳到剛纔你指定AllowDrop爲True的Silverlight對象上:

這樣還不夠,這只是將控件設定爲可以接受檔案而已,當檔案被拖曳到對象上之後,我們還需要去開啓它,並且透過程序代碼來做一些額外的處理,例如開文件、顯示…等動作。
我們可以在控件的Drop事件中來處理檔案的開啓與讀取動作:

在上面的程序代碼中,你會看到我們我們透過Drag事件的參數『e.Data』可以取得檔案對象,由於對象可能是個檔案集合(用戶一次拖曳了多個檔案),因此我們將其轉爲System.IO.FileInfo[]型別,接着透過foreach取得對象內容即可,上面的範例可以在TextBox中顯示用戶拖曳到畫面上的文本文件(不過需要注意其編碼,上面的範例支持Unicode格式的文檔。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章