2011-10-18 9 views
0

입력이 끝난 후 텍스트 상자에서 캐럿 깜박임을 제거하려고합니다. 나는 프로그래밍 방식으로 다른 컨트롤에 초점을 시도하고 MouseRead 이벤트에 IsReadOnlyCaretVisible = false 및 IsReadOnly를 설정했지만 아무 도움이되지 않습니다. 어떻게해야합니까? 캐럿은 내가하는대로 여전히 거기에 남아 있습니다 ...wpf 텍스트 상자 캐럿

+0

"입력 완료 후"란 무엇을 의미합니까? 사용자가 포커스를 다른 컨트롤로 변경하는 경우에만 보장됩니다. – djdanlib

+0

내가 원한 텍스트를 입력했습니다 – OneMoreVladimir

+0

하지만 컨트롤이 원하는 것을 어떻게 알 수 있습니까? 사용자는 아무 것도 입력하지 않고도 텍스트를 입력 할 수 있습니다. – djdanlib

답변

2

그건 아주 이상합니다. 포커스가 바뀌면 캐럿이 사라집니다 (예 : 텍스트 상자를 클릭하면). 구식 "HideCaret"WINAPI 함수는 표준 Windows 컨트롤이 아니기 때문에 사용할 수 없습니다. WPF입니다.

이 문제는 문제가 발생하지 않아 해결책이 매우 간단한 코드 줄 이었기 때문에 문제의 반대편을 해결합니다. 아마도 로직을 뒤집거나 코드가 이미이 작업을 수행하고 해당 부분을 사용 중지하는지 확인하면 원하는 결과를 얻을 수 있습니다. WPF Textbox persist visible caret

또한 최신 버전의 WPF를 사용하면 캐럿이 사용하는 브러시를 다시 할당 할 수 있습니다.

+0

필자는 텍스트 상자가있는 usercontrol을 만들었고 그 컨트롤을 Canvas에 추가하려고합니다. 텍스트를 편집 한 다음 캔버스를 클릭하거나 텍스트 상자에 캐럿이 여전히 깜박 거리면 ... = ( – OneMoreVladimir