2016-01-20 102 views
1

我想將Tiles從一個導航欄拖動到儀表板。 (使用Visual Studio 2015,C#和WPF)現在我堅持一個問題;哪個DataFormat具有Tile的內容?只有圖像?但是,我如何使用/緩存呢?拖放塊 - WPF

private void tileFrom_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    Tile tileFrom = e.Source as Tile; 

    if (tileFrom!= null && e.LeftButton == MouseButtonState.Pressed) 
    { 
     DragDrop.DoDragDrop(tileFrom, 
          tileFrom.Content, 
          DragDropEffects.All); 

    } 
} 

private void tileTo_Drop(object sender, DragEventArgs e) 
{ 
    Tile tileTo = e.Source as Tile; 
    string draggedText = (string)e.Data.GetData(DataFormats.StringFormat); 
    tileTo.Content = draggedText; 
} 

而不是StringFormat必須有其他方式...請幫助!

回答

1

在拖放中,您可以使用e.Data.GetFormats()來檢查可用的格式 - 我發現獲取對象然後檢查類型更有用。

object data = e.Data.GetData(e.Data.GetFormats[0]); 
var someTypeData = data as SomeType; 
if(someTypeData != null) {...} 
+0

你說得對。這更好:) – Dana