2016-01-20 103 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