我有一个堆栈面板,AllowDrop
属性为true,我必须在此堆栈面板上拖动用户控件(Player.xaml)。
在Stack Panel的Drop
事件中,我必须检查被拖动的项目是否属于user control (Player.xaml)
类型
private void StackPanel_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("ProjectName.FolderName.Player"))
{
spHolder.Children.Clear();
spHolder.Children.Add((UserControls.AnswerControl)e.Data.GetData("ProjectName.FolderName.Player"));
}
}
如果我在控制中删除一个简单的文本,我会这样做:
private void StackPanel_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.StringFormat))
{
spHolder.Children.Clear();
spHolder.Children.Add((UserControls.AnswerControl)e.Data.GetData(DataFormats.StringFormat));
}
}
但是当我在堆栈面板上删除自定义用户控件时,我该怎么办?这个东西的格式是什么?
答案 0 :(得分:1)
使用
Dictionary<Player, string> dropShapes = e.Data.GetData(typeof(Dictionary<Player, string>))
as Dictionary<Player, string>;
或
Player dropShape = e.Data.GetData(typeof(Player))