2013-09-24 2 views
0

텍스트 상자가있는 WPF의 페이지가 있습니다. 이 텍스트 상자는로드에 집중하도록 설정됩니다.WPF에서 포커스를 잃는 페이지

백그라운드에서 실행중인 응용 프로그램에서 생체 인식 스캔 결과의 문자열 값을 가져 와서 해당 텍스트 상자에 배치하는 응용 프로그램이 있습니다. 이것은 타사 응용 프로그램이며 특정 이름을 가진 응용 프로그램에서 특정 이름의 텍스트 상자를 찾고 해당 텍스트 상자에 초점을 맞추면 해당 문자열을 쓸 것이라고 알려 왔습니다.

이것은 완벽하게 정상적으로 작동하지만 아래에 제가 가지고있는 문제가 있습니다.

우리는 화면 키보드에 대한 사용자 정의 소프트웨어를 가지고 있습니다. 사용자가이 키보드를 가져 와서 타이핑을 시작하기 위해 버튼을 클릭 할 수 있도록 텍스트 상자를 쓸 수도 있습니다. 그러나이 키보드가 나타나면 내 응용 프로그램에 초점을 잃는 것처럼 보이고 다시 돌아 오지 않습니다. 실행중인 응용 프로그램의 수명주기에 대해 현재 응용 프로그램이 내 초점으로 표시되지 않기 때문에 생체 인식이 작동하지 않습니다.

어떻게하면 응용 프로그램이 원할 때만 초점을 다시 맞출 수 있습니까? 나는 항상 초점과 상단에있는 것을 원하지 않는다. 그렇지 않으면 커스텀 키보드는 결코 보여주지 않을 것이다.

나는 기쁨과 Application.Activated 이벤트로보고, 심지어 시도 붙어 있지만,이 사람이 어떤 조언을해야합니까 얻기

public static extern bool SetForegroundWindow(IntPtr hWnd);

다음?

+1

당신은 내가 온 http://www.pinvoke.net/default.aspx/user32.showwindow – Dutts

답변

0

Activate() 및 Focus() 메서드를 사용해 보셨습니까? 이 스레드가 Bring a window to the front in WPF

이 특별한 사람이 나를 위해 일한 주제에 대한 답변을 잔뜩 가지고 https://stackoverflow.com/a/7559766/305020

+0

뭔가를 시도 할 수 그 스레드에 걸쳐 있지만 페이지가 아니라 창을 사용하고 있으므로 활성화 또는 포커스 방법이 없습니다 (볼 수 있습니다) – MichaelMcCabe

+0

그러나 페이지의 위치는 어디입니까? 내가 아는 한, 페이지는 바탕 화면 주위로 떠있을 수 없습니다. –

관련 문제