2013-08-20 2 views
1

나는 avalonEdit을 사용하여이 패널에서 잘 작동하지만, 텍스트 상자AvalonEditor SearchPanel

SearchPanel sp = new SearchPanel(); 
sp.Attach(textEditor.TextArea); 
sp.Open(); 

초점이 없습니다. "재 활성화"방법이 작동하지 않습니다. 누구나 SearchPanel의 텍스트 상자에 포커스를 설정하는 방법을 말해 줄 수 있습니까? 감사합니다.

답변

3

Open 메서드는 컨트롤을 텍스트 편집기의 adorner 레이어에 삽입합니다. 당신은

sp.Dispatcher.BeginInvoke(DispatcherPriority.Input, (Action)sp.Reactivate); 

가 제대로 초기화 된 SearchPanel 인스턴스 후 재 활성화 을 실행하는 데 사용해야합니다. API는 다소 지저분하고 확실한 청소가 필요하지만 현재 문제를 해결해야합니다. 지크프리트가 제안한 것처럼

+0

답장을 보내 주셔서 감사합니다. find 함수를 활성화하는 또 다른 방법을 찾았습니다 : 'xmlEditor.TextArea.DefaultInputHandler.NestedInputHandlers.Add (새 SearchInputHandler (xmlEditor.TextArea)); – Xinyu

0

는 VB.Net에서 나는

searchPanel.Dispatcher.BeginInvoke(Sub() searchPanel.Reactivate(), Windows.Threading.DispatcherPriority.Input) 

을 사용하고 그것은 큰 일했습니다.