2016-12-31 6 views
1

練習ドラッグアンドドロッププログラムを作成しようとしています。DragOverイベント中にファイルタイプを特定する:UWPメディアラーニングプロジェクト

このプログラムは、画像をドロップすると画像(JPGまたはPNGまたはビットマップ)を表示します。それは落とされたときに音楽ファイルを再生し、ビデオファイルが落とされたときにビデオを再生します。 DragOverイベントが発生したときに、どんな種類のファイルがドロップされようとしているのかを示すアイコンをドロップします。また、ファイルタイプが私のプログラムと互換性がない場合は、アイコンもそれを示すことができます。 私はDragEventArgsクラスを3週間かけて調べてきましたが、3種類のメディアファイルの違いを知る方法を見つけようとしましたが、私は空になってしまいました。誰もこれで助けることができますか?

答えて

1

DragUIOverrideを使用すると、ドラッグされたオブジェクトの外観をカスタマイズできます。

あなたがターゲット要素にDragOverイベントでそれを設定することができます。

private async void Grid_DragOver(object sender, DragEventArgs e) 
{ 
    e.DragUIOverride.Caption = "Some caption"; 
    e.DragUIOverride.IsCaptionVisible = true; 
    e.DragUIOverride.IsContentVisible = true; 
    e.DragUIOverride.IsGlyphVisible = true; 
    e.AcceptedOperation = DataPackageOperation.Copy; 
    //check the type of the file 
    var items = await e.DataView.GetStorageItemsAsync(); 
    if (items.Any()) 
    { 
     var storageFile = items[0] as StorageFile; 
     if (storageFile.FileType == ".jpg") 
     { 
      e.DragUIOverride.SetContentFromBitmapImage(
      new BitmapImage(new Uri("ms-appx:///Assets/jpgIcon.png"))); 
     } 
     else if (storageFile.FileType == "png") 
     { 
      e.DragUIOverride.SetContentFromBitmapImage(
      new BitmapImage(new Uri("ms-appx:///Assets/pngIcon.png"))); 
     } 
     //... 
     else 
     { 
      //for disallowed file types 
      e.AcceptedOperation = DataPackageOperation.None; 
      e.DragUIOverride.SetContentFromBitmapImage(
      new BitmapImage(new Uri("ms-appx:///Assets/errorIcon.png"))); 
     } 
    } 
} 
関連する問題