2016-06-07 2 views
0

Windows 탐색기에서 텍스트 상자가 나타나는 방식을 보면 파일의 이름을 바꾸면 전체 텍스트가 강조 표시됩니다. 그러나 드래그하여 텍스트를 선택하면 사용자의 드래그에 맞게 선택 항목이 변경됩니다.WPF - 텍스트 상자 컨트롤에서 끌어서 놓기를 비활성화하는 방법?

WPF에서 텍스트 상자의 텍스트를 모두 선택한 다음 텍스트 영역을 끌어 텍스트를 선택하면 & 텍스트 상자 안에 텍스트를 놓으십시오. WPF에서이 기능을 사용하지 않도록 설정하는 방법이 있는지, Windows 탐색기와 더 비슷하게되어 있는지 궁금합니다.

사람들이 이름을 바꾸면 이름 바꾸기를 활성화 한 후 모든 텍스트가 강조 표시되기 때문에 전체 이름을 바꾸거나 일부 텍스트를 강조 표시하기 위해 사용자의 이름을 바꿀 필요가 있기 때문에 주로 필요합니다. Windows 탐색기는 둘 다 잘 작동하고 WPF에서이 기능을 복제해야합니다.

답변

4

당신은 DataObject.AddCopyingHandler 사용할 수 있습니다

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

편집 :

는 선택의 시작 부분으로 커서의 위치를 ​​설정하지 않는 텍스트를 선택 드래그, 그것은 단지의 시작을 사용 텍스트 상자의 텍스트

실제로 선택하기 바로 전에 현재 선택 항목을 삭제할 수 있습니다.

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

이 방법이 효과적이지만 텍스트 선택으로 끌면 커서 위치가 선택 영역의 시작으로 설정되지 않고 텍스트 상자의 텍스트 시작 부분 만 사용됩니다. 그게 어떻게 고정 될지 생각해? – AliEgseem

+0

@AliEgseem 내 편집을 참조하십시오. – Xiaoy312

+0

감사합니다. 저는 캐럿 색인과 마우스 포인트를 사용하여 복잡한 작업을 수행하고 있었지만 훨씬 간단합니다. 좋은 대답! – AliEgseem