기본적으로 텍스트 상자에 레이블을 끌어서 텍스트 상자와 레이블을 사용하여 끌어서 놓기를 수행하고 있습니다. 텍스트 상자 및 레이블은 동일한 for 루프에서 작성됩니다.WPF C# 끌어서 놓기
는 동적으로이 같은 텍스트 상자를 (텍스트 상자가 드롭 대상) 만들었습니다
TextBox tbox = new TextBox();
tbox.Width = 250;
tbox.Height = 50;
tbox.AllowDrop = true;
tbox.FontSize = 24;
tbox.BorderThickness = new Thickness(2);
tbox.BorderBrush = Brushes.BlanchedAlmond;
tbox.Drop += new DragEventHandler(tbox_Drop);
if (lstQuestion[i].Answer.Trim().Length > 0)
{
wrapPanel2.Children.Add(tbox);
answers.Add(lbl.Content.ToString());
MatchWords.Add(question.Content.ToString(), lbl.Content.ToString());
}
나는이 또한 dynanmically이 같은 레이블 (라벨이 드래그 대상) 작성 :
Dictionary<string, string> shuffled = Shuffle(MatchWords);
foreach (KeyValuePair<string, string> s in shuffled)
{
Label lbl = new Label();
lbl.Content = s.Value;
lbl.Width = 100;
lbl.Height = 50;
lbl.FontSize = 24;
lbl.DragEnter += new DragEventHandler(lbl_DragEnter);
lbl.MouseMove += new MouseEventHandler(lbl_MouseMove);
lbl.MouseDown +=new MouseButtonEventHandler(lbl_MouseDown);
// lbl.MouseUp +=new MouseButtonEventHandler(lbl_MouseUp);
dockPanel1.Children.Add(lbl);
}
I을 여기에 2 가지 이슈가 있습니다.
첫 번째. MessageBox.Show (뭔가)를 표시하기 위해 tbox.drop 이벤트를 사용하고 있습니다. 드래그 대상이 드롭되고 있지만 작동하지 않는 경우 messagebox를 표시합니다. 나는 또한 끌기 대상이 내가 다른 드래그 대상이있을 수 있기 때문에 떨어 이전에 TBOX 삭제 될 때 tbox.Text을 지우려면,
private void tbox_Drop(object sender, DragEventArgs e)
{
MessageBox.Show("Are you sure?");
}
둘째 :
여기 내 코드입니다. 그래서 tbox.Text를 지우고 대상을 텍스트 상자로 드래그 할 때마다 드래그 대상을 드롭합니다.
어떻게하면됩니까? 나는이 이벤트에 사용해야하며 이벤트 핸들러에서 tbox에 어떻게 액세스해야합니까?
마우스 다운 이벤트에서 수행중인 것을 보여줄 수 있습니까? – Nitesh