拖放磁贴 - WPF

本文关键字:WPF 拖放 | 更新日期: 2023-09-27 18:31:08

我想将磁贴从一个导航栏拖动到仪表板。(使用 Visual Studio 2015、C# 和 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,还必须有其他方法......请帮忙!

拖放磁贴 - WPF

在拖放中,您可以使用e.Data.GetFormats()检查可用的格式 - 我发现获取对象然后检查类型更有用。

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