2012-10-22 4 views
0

MDI 응용 프로그램처럼 만들기 위해 창 안에 캔버스를 사용하고 있습니다.캔버스 내부의 다른 UserControl에서 TextBox로 포커스를 설정 하시겠습니까?

캔버스는 하위 Windows 인 여러 UserControl을 보유하게됩니다.

일부 텍스트 상자의 GotFocus 이벤트에서 Canvas 내에서 새로운 UserControl을 열 수 있습니다.

하지만 입력하거나 새 창을 닫을 때 이전 UserControl의 다음 TextBox로 다시 포커스를 설정하려고합니까? 나는 그것을 성취 할 수 없다.

Caliburn Micro에서 WPF를 사용하고 있습니까? 현재 EventAggreagator를 사용하여 TextBox의 GotFocus 이벤트에서 새 UserControl을 엽니 다.

+0

는 CRE하는 것이 가능 이 –

답변

1

나는 최근에 뭔가 비슷한했고, 내가 가지고 올 수있는 유일한 방법은

UserControl이 닫힐 때마다
public class ControlClosedEvent 
{ 
    public ControlClosedEvent() 
    { 
     // can be an empty event for all intents and purposes 
    } 
} 

, 이벤트를 게시, 즉 UserControl을 폐쇄했다 알림을 게시 할 IEventAggregator를 사용하는 것이 었습니다 :

_events.Publish(new ControlClosedEvent()); 

그리고 소비자 :

public partial class SomeView : UserControl, IHandle<ControlClosedEvent> 
{ 
    public void Handle(ControlClosedEvent message) 
    { 
     // ugly way of setting the text box as focused 
     SomeTextBox.Focus(); 
    } 
} 
+0

에 대한 동작을 먹었습니다. 지금까지 시도한 것이지만 ... 포커스를 설정하는 데 문제가 있습니다. –

+0

FocusManager를 사용해 보셨습니까? –

+0

Canvas에 내 윈도우가 있으므로 FocusManager가 작동하지 않습니다. –

관련 문제