如果查看文本框在Windows资源管理器中的显示方式 - 如果重命名文件,则会突出显示整个文本。但是,如果您拖动以选择文本,它将更改选择以适合用户的拖动。
在WPF中,如果您选择文本框的所有文本,然后在文本区域中拖动以选择文本,它将尝试并拖动&删除文本框区域中的文本。我想知道在WPF中是否有办法禁用此功能,让它更像Windows资源管理器?
它主要是因为当人们重命名时他们要么重命名整个事物(激活重命名后退格,因为所有文本都突出显示)或部分文本(用户拖动以突出显示某些文本。) Windows资源管理器结合了两者并且运行良好,我需要在WPF中复制该功能。
答案 0 :(得分:4)
您可以使用DataObject.AddCopyingHandler
:
DataObject.AddCopyingHandler(textbox, (s, e) =>
{
if (e.IsDragDrop) e.CancelCommand();
});
编辑:
当拖动选择文本时,它不会将光标位置设置为选择的开头,它只使用文本框中文本的开头
您可以在实际选择之前删除当前选择:
textbox.PreviewMouseLeftButtonDown += (s, e) =>
{
textbox.Select(0, 0);
};