나는 프로그래밍에 익숙하지 않으며 여기에서 끌어서 놓기를 시도하고 있습니다. 이제 끌어서 놓을 수 있지만 끌어서 놓기위한 사용자 정의 커서는 추악합니다. 어떻게 끌까요? 커서로 드레 이닝하는 요소? 나는 온라인으로 검색하고 adorner에 대한 언급을 발견했지만 코드를 이해하지 못합니다. 이 작업을 수행하는 간단하거나 단순하고 더 좋은 방법이 있습니까?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.PreviewDrop += 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());
}
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);
dockPanel1.Children.Add(lbl);
}
내가 끌어 오전 :
난 내가 드래그 앤 드롭 (내가 동적으로 for 루프에서 텍스트 상자와 라벨을 만들어, 내가 텍스트를 검색하고 데이터베이스에서 레이블을 추가 할 것을 여기에이 코드를 레이블 (드래그 대상)을 텍스트 상자 (끌어서 놓기)에 넣어야합니다. 이벤트는 어떻게 사용해야합니까? 드래그하는 레이블에 끌기 커서를 설정하는 방법은 무엇입니까?
여기 atm :
private void tbox_Drop(object sender, DragEventArgs e)
{
MessageBox.Show("Are you sure ? Wrong don't blame me ");
(sender as TextBox).Text = string.Empty;
}
private void lbl_DragEnter(object sender, DragEventArgs e)
{
if (sender == e.Source)
{
e.Effects = DragDropEffects.None;
}
}
모든 솔루션이나 도움이 감사합니다, 나는 그것을 구현하기 위해 이해하기에는 너무 복잡하다는 방식으로 adorner를 보았습니다. 이 작업을 수행하는 간단하고 간단한 방법을 찾고 있습니다.
Adorners에 대한 FluidKit http://fluidkit.codeplex.com/
자습서 같은 오픈 소스를 사용할 수 있습니다. 당신이하고 싶은 일을하고 싶다면, 너는 주저하고 Adorners에 대해 배우기를 권합니다. 그다지 어렵지 않습니다. Adorners는 물건을 그릴 수있는 컨트롤 위에있는 레이어라고 생각하십시오. 구글 "DragDropAdorner"그리고 거기에서 이동하십시오. –