【发布时间】:2016-10-16 02:41:38
【问题描述】:
我正在尝试实现 2 个文本框之间的文本交换。想法是,你只有很少的一个,当你右键单击其中一个时,拖放另一个,第一个的文本到第二个,第二个的文本到第一个。所以基本上是文本交换(实际上后来我想交换字体名称,大小等......但当时只有一步)。
所以我遇到的问题是关于 RightClick 处理程序...默认情况下,右键单击 ContextMenu 会显示,所以我禁用了它(通过执行 ContextMenu="{x:Null}")。
我已经知道将处理程序添加到 MouseRightButtonDown 是行不通的,所以我将它添加到 PreviewMouseRightButtonDown 并且它的 C# 代码如下所示:
private void PreviewMouseRightButtonDownHandler(object sender, MouseButtonEventArgs e)
{
DragDrop.DoDragDrop( e.Source as DependencyObject,
(sender as Textbox).Text,
DragDropEffects.Move);
}
现在,当我在 TextBox 上按鼠标右键时,将执行此功能。不幸的是,只要我稍微移动一下鼠标,文本就会粘贴到同一个文本框:/而且我不明白为什么......
如果我使用 PreviewMouseLeftButtonDown 它的行为方式不同,我可以将鼠标光标拖出 TextBox。
我在这里发现了类似的问题 => WPF DragDrop.DoDragDrop (for a RIGHT-Click?)
并试图在我的代码中添加DragDrop.AddQueryContinueDragHandler(this, QueryContinueDragHandler); 位,但这似乎不起作用:/
从那时起已经有 5 年了,所以从那时起可能发生了一些变化。
有人吗?
【问题讨论】:
标签: wpf drag-and-drop right-click wpf-textbox