在Drop事件中检查对象的格式

时间:2012-06-21 07:13:34

标签: c# silverlight

我有一个堆栈面板,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));
    }
}

但是当我在堆栈面板上删除自定义用户控件时,我该怎么办?这个东西的格式是什么?

1 个答案:

答案 0 :(得分:1)

使用

Dictionary<Player, string> dropShapes = e.Data.GetData(typeof(Dictionary<Player, string>))
                as Dictionary<Player, string>;

Player dropShape = e.Data.GetData(typeof(Player))