我想将Tile从一个NavigationBar拖动到Dashboard。 (使用Visual Studio 2015,C#和WPF)现在我坚持一个问题;哪个DataFormat具有平铺内容?只有图像?但是如何使用/缓存呢?
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
必须有其他方式......请帮忙!
答案 0 :(得分:1)
在Drag and Drop中,您可以使用e.Data.GetFormats()
检查可用的格式 - 我发现获取对象然后检查类型更有用。
object data = e.Data.GetData(e.Data.GetFormats[0]);
var someTypeData = data as SomeType;
if(someTypeData != null) {...}