C# 在WPF中拖放弹出文本框

C# 在WPF中拖放弹出文本框,c#,wpf,C#,Wpf,我在WPF中创建了一个小程序,我点击一个按钮,弹出一个文本框。我想让这个可移动-拖放 在代码中,我为名为x的文本框创建了一个对象,并使用命令x.AllowDrop=true,但没有成功 private void button1_Click_1(object sender, RoutedEventArgs e) { TextBox x = new TextBox(); x.Name = "new_textboxqq"; x.TextWrappin

我在WPF中创建了一个小程序,我点击一个按钮,弹出一个文本框。我想让这个可移动-拖放

在代码中,我为名为
x
的文本框创建了一个对象,并使用命令
x.AllowDrop=true,但没有成功

private void button1_Click_1(object sender, RoutedEventArgs e) {

    TextBox x = new TextBox();      
    x.Name = "new_textboxqq";       
    x.TextWrapping = TextWrapping.Wrap;     
    x.Text = "asfsadfasfsadfasff";                          

    x.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;   
    x.Background = Brushes.Yellow;      
    x.AcceptsReturn = true
        x.Margin = new Thickness(5, 10, 0, 0);  

    x.AllowDrop = true;

    HouseCanvas.Children.Add(x);            
    this.AllowDrop = true;

    Canvas.SetLeft(x, 20);                  
    Canvas.SetTop(x, 20);                   
}
我尝试过MSN、Youtube和其他来源,但没有成功

private void button1_Click_1(object sender, RoutedEventArgs e) {

    TextBox x = new TextBox();      
    x.Name = "new_textboxqq";       
    x.TextWrapping = TextWrapping.Wrap;     
    x.Text = "asfsadfasfsadfasff";                          

    x.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;   
    x.Background = Brushes.Yellow;      
    x.AcceptsReturn = true
        x.Margin = new Thickness(5, 10, 0, 0);  

    x.AllowDrop = true;

    HouseCanvas.Children.Add(x);            
    this.AllowDrop = true;

    Canvas.SetLeft(x, 20);                  
    Canvas.SetTop(x, 20);                   
}

拖放是一种数据传输技术。从一个控件或文件到另一个控件或窗口


如果需要在窗口内移动控件,则需要使用鼠标事件:
MouseDown、MouseUp、MouseMove

您希望拖动
文本框
,并在
画布上移动它,但用于拖放操作。拖放和移动是不同的操作

这是做你想做的事

其思想是处理画布的
MouseMove
事件,计算鼠标光标的位置,通过将
TextBox
的位置设置为该位置,可以使
TextBox
跟随鼠标光标移动