0

我有一个AllowDrop属性为 true 的堆栈面板,我必须在此堆栈面板上拖动一个用户控件 (Player.xaml)。
DropStack Panel 事件中,我必须检查被拖动的项目是否属于该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));
    }
}

但是,当我将自定义用户控件放到堆栈面板上时,我应该怎么做?这个东西的具体格式是什么?

4

1 回答 1

1

采用

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

或者

Player dropShape = e.Data.GetData(typeof(Player))
于 2012-06-21T07:20:21.207 回答