Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF C#拖放拖动元素作为光标_C#_Wpf_Drag And Drop_Cursor_Adorner - Fatal编程技术网

WPF C#拖放拖动元素作为光标

WPF C#拖放拖动元素作为光标,c#,wpf,drag-and-drop,cursor,adorner,C#,Wpf,Drag And Drop,Cursor,Adorner,我是编程新手,我正在尝试在这里进行拖放,我现在可以拖放,但要拖放的自定义光标很难看,我如何拖动我正在拖动的元素作为光标?我在网上搜索,发现了一些关于adorner的信息,但我甚至不理解代码。有没有简单、简化、更好的方法 我可以拖放这里的代码(我在for循环中动态创建了textbox和label,我从数据库检索文本并将其附加到label: TextBox tbox = new TextBox(); tbox.Width = 250;

我是编程新手,我正在尝试在这里进行拖放,我现在可以拖放,但要拖放的自定义光标很难看,我如何拖动我正在拖动的元素作为光标?我在网上搜索,发现了一些关于adorner的信息,但我甚至不理解代码。有没有简单、简化、更好的方法

我可以拖放这里的代码(我在for循环中动态创建了textbox和label,我从数据库检索文本并将其附加到label:

                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);
        }

非常感谢您提供的任何解决方案或帮助,我见过adorner,它的实现方式太复杂,我无法理解。正在寻找一种简单的方法来实现它。

您可以使用像FluidKit这样的开源软件

同样的教程

装饰条是你做你想做的事情的方式。如果你想做你想做的事情,我建议你努力学习装饰条。这不是很难。把装饰条想象成一个在你控制之上的层,你可以在上面画东西。谷歌“DragDropAdorner”并从那里开始。
        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;
        }
    }