我想做类似于以下这样的事情:
A .............. ........... B
______ ........... _______
| RED | .......... | GREEN |
---------- .......... -----------
当我拖动 A 到 B 或者 B 到 A 时,两个标签的文本会互相交换。
A .............. ........... B
______ ........... ... _____
| GREEN| .......... | RED |
---------- ............... ---------
我已经完成了一些工作。
主窗口
当我拖放文本时,代码中的文本会显示在下拉标签上。
当我将红色拖到绿色上时:
我的代码:
private void Label_MouseDown(object sender, MouseButtonEventArgs e)
{
Label lblFrom = e.Source as Label;
if (e.LeftButton == MouseButtonState.Pressed)
DragDrop.DoDragDrop(lblFrom, lblFrom.Content, DragDropEffects.Copy);
}
private void Label_QueryContinueDrag(object sender, QueryContinueDragEventArgs e)
{
Label lblFrom = e.Source as Label;
if (!e.KeyStates.HasFlag(DragDropKeyStates.LeftMouseButton))
lblFrom.Content = "RED";
}
private void Label_Drop(object sender, DragEventArgs e)
{
string draggedText = (string)e.Data.GetData(DataFormats.StringFormat);
Label toLabel = e.Source as Label;
toLabel.Content = draggedText;
}
}