2009-05-05 3 views
5

저는 지금 WPF 응용 프로그램에서 지옥에 집중할 것입니다. 포커스는 요소들 사이를 뛰어 다니며, 탭 키를 반복해서 누를 때 다른 요소 위에 나타나기 만하는 것처럼 보입니다.누구나 WPF 포커스를 디버깅하는 좋은 방법이 있습니까?

레이블을 바인딩 할 수있는 속성이 있습니까? 아니면 그저 키보드 포커스가 래치되어있는 것을 말해 주겠습니까? 때로는 포커스가있는 지점을 나타내는 개미 흔적 (점선)을 볼 수 있지만 키보드 포커스를 해제하기 위해 주변을 알 수는 없습니다!

답변

0

디버거로 수행하는 거의 모든 작업이 포커스에 영향을주기 때문에 포커스 문제는 분석하기가 매우 어려울 수 있습니다.

  • 당신에게 다양한 컨트롤에가는 이벤트를 보여줍니다 Visual Studio를 함께 제공 스파이 ++의 사본; 이것은 도움이 될 수 있습니다.
  • 포커스 및 손실 포커스 이벤트를 다른 창 (예 : 다른 창의 목록 컨트롤)에 기록 할 수 있습니다. 또는 현재 창 제목을 포커스가있는 현재 객체의 이름으로 설정할 수도 있습니다. 그러면 현재 무엇이 집중되어 있는지 표시 할 수 있습니다.

질문하는 것이 더 좋은 질문은 포커스가 왜 뛰어 오르는 것입니까? 명시 적으로 포커스를 설정하고 있습니까? 구현에 대한 힌트 (예 : 사용중인 컨테이너)가 Google에서 대답하는 데 도움이 될 수 있습니다.

+0

그것은 WPF 툴킷 CTP에서 WPF 데이터 그리드입니다. 어떤 이유로 DataGrid에 바인딩 된 컬렉션에서 항목을 삭제하면 그리드 내부에서 그리드 외부로 포커스가 이동합니다. 개미 흔적이 전체 그리드 주위에 나타납니다. – Jippers

1

당신이 가능성이 찾고있는 것은 :

(같은 System.Windows.Input.Keyboard.FocusedElement FrameworkElement) .name을 당신이 결합 할 수 있도록 당신은 그것을 설정에 DependencyProperty에있을 것이다

그것.

Vaccano 어쩌면

+0

어떻게 그럴 수 있습니까? 나는 여기 MSDN에서 예제를 따르려고하지만 많은 행운을 가지고 노력하고있어. http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.aspx – Jippers

0

당신이 컨트롤의 tabIndex 속성에 적절한 값을 설정 하시겠습니까? 탭을 누를 때 점프하기를 원하는 "경로"위에 초점을 "점프"해야합니다.

0

이 기사를 읽는 것이 좋습니다. 포커스 문제를 디버그하는 데 도움이되는 몇 가지 소스 코드가 제공되며, 종종이 코드를 사용하여 포커스 문제를 해결할 수 있습니다.

http://julmar.com/blog/mark/?p=52

+0

링크가 오래되었습니다. 이제는 내용에 대해 완전히 궁금합니다. – BenL

관련 문제