有没有人知道如何禁用Drag和;删除所有我的文本框元素? 我找到了here的东西,但这需要我为所有元素运行一个循环。
答案 0 :(得分:5)
在InitializeComponent()
之后使用以下内容DataObject.AddCopyingHandler(textboxName, (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); });
答案 1 :(得分:2)
您可以轻松地将本文描述的内容包装到附加的属性/行为中......
即。 TextBoxManager.AllowDrag =“False”(有关详细信息,请查看这两篇CodeProject文章 - Drag and Drop Sample和Glass Effect Sample link text)
或试用新的Blend SDK的行为
<强>更新强>
答案 2 :(得分:1)
从MyTextBox创建您的所有者用户控件:TextBox并覆盖:
protected override void OnDragEnter(DragEventArgs e)
{
e.Handled = true;
}
protected override void OnDrop(DragEventArgs e)
{
e.Handled = true;
}
protected override void OnDragOver(DragEventArgs e)
{
e.Handled = true;
}
答案 3 :(得分:1)
我个人创建了一个不允许拖动的自定义TextBox控件,如下所示:
/// <summary>
/// Represents a <see cref="TextBox"/> control that does not allow drag on its contents.
/// </summary>
public class NoDragTextBox:TextBox
{
/// <summary>
/// Initializes a new instance of the <see cref="NoDragTextBox"/> class.
/// </summary>
public NoDragTextBox()
{
DataObject.AddCopyingHandler(this, NoDragCopyingHandler);
}
private void NoDragCopyingHandler(object sender, DataObjectCopyingEventArgs e)
{
if (e.IsDragDrop)
{
e.CancelCommand();
}
}
}
而不是使用TextBox使用local:NoDragTextBox where&#34; local&#34;是NoDragTextBox程序集位置的别名。同样的上述逻辑也可以扩展,以防止在TextBox上复制/粘贴。
有关详细信息,请查看http://jigneshon.blogspot.be/2013/10/c-wpf-snippet-disabling-dragging-from.html
上对上述代码的引用