2012-06-19 3 views
0

제목에는 거의 다 나와 있지만 기본적으로 하위 창을 열 수있는 기본 부모 창이 있습니다. 지금은 Windows 7 작업 표시 줄에서 자식 창 중 하나를 선택할 수 있으며 그 창만 앞으로 이동합니다. 부모 창을이 명령에 연결하는 방법을 찾으려면 언제든지 자식 창이 선택 될 때 부모가 자동으로 앞으로 가져옵니다.자식 창이 작업 표시 줄에서 선택되었을 때 부모 창을 앞에 가져옴

나는 자식 창 'GotFocus event handler, but neither seemed to make a difference. I also tried the BringIntoView()`방법 내에서 Focus()Topmost = true 명령을 모두 사용하려했지만 다시는 기쁨이 없었습니다. 누구든지 이것을 보거나 이것을 구현하는 방법을 알고 있습니까?

이것은 내가 지금까지 시도한 것입니다. mainWindow을 설정하고 즉시 하위 창을 설정하는 논리는 자식 창에 포커스를두고 싶지만 mainWindow이 실행중인 다른 프로그램 (예 : Excel, VS 등)보다 위에 있도록하려는 것입니다.

private void Window_GotFocus(object sender, RoutedEventArgs e) 
    { 
     var mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MainWindow) as MainWindow; 

     mainWindow.Topmost = true; 
     this.Topmost = true; 

    } 
+0

윈도우에서 활성화()를 시도하십시오. –

+0

변경하지 않으려 고 시도했습니다. –

답변

2

나는 당신이 당신의 창을 선택 할 때 알림을받을 잘못된 이벤트를 수신하고 생각합니다. 작업 표시 줄에서 창을 선택한 시점을 알려주는 자녀 창의 Activated 이벤트를 구독하십시오. 여기에서 MainWindow를 Activate() 할 수 있습니다.

또한 부모 창을 하위 창의 소유자로 설정하면이 동작이 자동으로 수행됩니다.

+2

'Activated' even에 대해서 모르겠지만,'MainWindow'를 소유자로 설정하는 것은 정확합니다. 나는 이것이 가능하다는 것을 알고 있었고, 전문 용어를 사용할 수 없었다. 제 두뇌에 뛰어든 점 감사드립니다. :) –

관련 문제