2011-08-13 4 views
3

이 설명은 약간 까다 롭습니다.WPF usercontrol이 별도의 컨트롤에서 lostfocus를 변경하지 못하도록합니다.

일부 텍스트 상자가있는 usercontrol이 있습니다. 같은 창에서이 usercontrol 바로 위에 메뉴가 있습니다. Tab 키를 누를 때마다 LostFocus가 텍스트 상자에서 올바르게 실행되고 이것이 내가 원하는 것입니다. 이상하게도, 내 윈도우 상단의 메뉴 버튼을 클릭하면 LostFocus 이벤트가 텍스트 상자에서 실행되지 않습니다. 내 메뉴가 LostFocus가 마지막으로 초점을 잡은 컨트롤에서 실행되도록하는 우아한 방법이 있습니까?

또한 BindingExpressions을 업데이트하지 않아도되고 싶지 않으면 N 텍스트 상자에서이 작업을 수행하는 것이 바람직하지 않을 수 있습니다.

나는 이것을 달성하기가 너무 어렵다고 상상할 수 없다. 나는 이것이 어떻게 작동하지 않는지 이해하지 못한다 : 대부분의 다른 상황에서는 LostFocus가 항상 발생한다.

아이디어가 있으십니까? 고맙습니다.

+0

메뉴가 포커스를 맞추지 않습니다. 디자인에 의해. 왜 그걸 원하니? –

+0

포커스를 가져 가면 이전 컨트롤이 적절하게 작동 할 수 있습니다. – Mani5556

+0

포커스가 무엇인지 결정하고 메뉴 명령의 OnClick을 처리하는 방법이 있다면 다른 도전입니다. – Mani5556

답변

0

메뉴 또는 WPF뿐 아니라 Winforms/UnManaged입니까? 두 경우 중 하나라도 손실 된 포커스 이벤트가 발생하지 않습니다. 이렇게하면 저장 또는 기타 데이터 기능이 메뉴에서 수행되는 동안 WPF 컨트롤을 손상시킬 수 있습니다. 이 문제를 해결하기 위해이 문제를 해결하기 위해 여러 가지 방법을 구현해야했습니다. 가장 쉬운 방법은 사용자 컨트롤 자체에 마우스 나가기 이벤트를 구현하고 코드에서 수동으로 필요한 모든 작업을 수행하는 것이 었습니다.

관련 문제