簡體   English   中英

WPF-如何禁用文本框控件內的拖放?

[英]WPF - How to disable drag and drop WITHIN a textbox control?

如果您查看文本框在Windows資源管理器中的顯示方式-如果您重命名文件,它將突出顯示整個文本。 但是,如果拖動以選擇文本,它將更改選擇以適合用戶的拖動。

在WPF中,如果選擇一個文本框的所有文本,然后在文本區域中拖動以選擇文本,它將嘗試將文本拖放到文本框區域中。 我想知道WPF中是否有一種方法可以禁用此功能,使其更像Windows資源管理器?

這是最需要的,因為人們重命名事物時,他們要么想重命名整個事物(激活重命名后的退格鍵,因為所有文本都被突出顯示),要么要重命名一部分(用戶拖動以突出顯示一些文本。)Windows資源管理器將兩者結合在一起並且可以工作很好,我需要在WPF中復制該功能。

您可以使用DataObject.AddCopyingHandler

DataObject.AddCopyingHandler(textbox, (s, e) =>
{
    if (e.IsDragDrop) e.CancelCommand();
});

編輯:

拖動以選擇文本時,它不會將光標位置設置為所選內容的開頭,而只是使用文本框中的文本開頭

您可以在實際選擇之前刪除當前選擇:

textbox.PreviewMouseLeftButtonDown += (s, e) =>
{
    textbox.Select(0, 0);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM