WPF TextBox:取消放置操作留下插入标记
WPF TextBox: Cancelling drop operation leaves Insertion marker
我有一个 WPF 应用程序,如果满足某些条件(请参阅下面的 shouldCancelDrop),我想取消对 TextBox 的放置操作:
样本:
XAML:
<TextBox PreviewDrop="TextBox_PreviewDrop" />
后面的代码:
private void TextBox_PreviewDrop(object sender, DragEventArgs e)
{
//Decision if to cancel to drop
var shouldCancelDrop = false;
//if (...) shouldCancelDrop = true;
if (shouldCancelDrop)
{
e.Handled = true;
return;
}
//...
}
问题是:在离开 TextBox_PreviewDrop-Handler 后 e.Handled = true "插入标记" 始终留在文本框中。它看起来像一个文本光标但是是浅灰色的并且不闪烁,看这里(右边黑色的是文本光标):
.
取消掉落时如何去掉这个插入标记?
在我完成另一个拖动操作之前,它一直停留在 TextBox 中!
所以我正在寻找一些“CancelDropOperationAndRedrawTextBox”-Action...
您可以使用“PreviewDragOver”事件来禁止通过 DragDropEffects.None 删除元素:
private void TextBox_OnPreviewDragOver(object sender, DragEventArgs e)
{
//Decision if to cancel to drop
var shouldCancelDrop = false;
//if (...) shouldCancelDrop = true;
if (shouldCancelDrop)
{
e.Effects = DragDropEffects.None;
return;
}
//...
}
我有一个 WPF 应用程序,如果满足某些条件(请参阅下面的 shouldCancelDrop),我想取消对 TextBox 的放置操作:
样本:
XAML:
<TextBox PreviewDrop="TextBox_PreviewDrop" />
后面的代码:
private void TextBox_PreviewDrop(object sender, DragEventArgs e)
{
//Decision if to cancel to drop
var shouldCancelDrop = false;
//if (...) shouldCancelDrop = true;
if (shouldCancelDrop)
{
e.Handled = true;
return;
}
//...
}
问题是:在离开 TextBox_PreviewDrop-Handler 后 e.Handled = true "插入标记" 始终留在文本框中。它看起来像一个文本光标但是是浅灰色的并且不闪烁,看这里(右边黑色的是文本光标):
取消掉落时如何去掉这个插入标记?
在我完成另一个拖动操作之前,它一直停留在 TextBox 中!
所以我正在寻找一些“CancelDropOperationAndRedrawTextBox”-Action...
您可以使用“PreviewDragOver”事件来禁止通过 DragDropEffects.None 删除元素:
private void TextBox_OnPreviewDragOver(object sender, DragEventArgs e)
{
//Decision if to cancel to drop
var shouldCancelDrop = false;
//if (...) shouldCancelDrop = true;
if (shouldCancelDrop)
{
e.Effects = DragDropEffects.None;
return;
}
//...
}