在WPF中拖放弹出文本框

时间:2015-10-24 11:48:29

标签: c# wpf

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

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

我尝试过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);                   
}

2 个答案:

答案 0 :(得分:0)

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

如果您需要在窗口内移动控件,则需要使用鼠标事件:MouseDown, MouseUp, MouseMoveLook this.

答案 1 :(得分:0)

您想要拖动TextBox并在Canvas上移动它,但AllowDrop property用于拖放操作。拖放和拖放是不同的操作。

这是an example做你想做的事。

这个想法是处理Canvas的MouseMove事件,计算鼠标光标的位置,并通过设置TextBox到该位置的位置,你可以制作{{1} }跟随鼠标光标移动。