【发布时间】:2017-04-18 21:56:50
【问题描述】:
我想做类似的事情 我有两个标签
A .................... B
______ ...... _______
|红色 | .......... |绿色 |
---------- .......... -----------
当我将 A 拖到 B 上或 B 拖到 A 上时,双方交换的文字
A .................... B
______ ...... ... _____
|绿色| .......... |红色 |
---------- ...... ---------
我已经做了一点
主窗口
当我从 代码 拖放文本时,会出现在放置标签上
当我将红色拖到绿色时:
我的代码:
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;
}
}
【问题讨论】:
标签: c# wpf drag-and-drop