2012-11-14 1 views
2

다음과 같은 상황에있을 때이 문제가 발생합니다. - 내 응용 프로그램에 기본 창 보유 - 작업에 표시되지 않는 다른 창을 만듭니다. 바, 도구 창입니다. - 두 번째 창을 대화 상자 창 (기본 창에서)으로 표시 - 내 시스템에서 실행중인 다른 응용 프로그램으로 전환합니다. 응용 프로그램으로 돌아 왔을 때 주 창이 표시되지만 두 번째 창이 잠겨 있습니다. 창문, 그건 보여주지 않습니다. 작업 표시 줄에 표시되지 않는 WPF ToolWindow는 응용 프로그램을 차단합니다.

두 번째 윈도우의 코드입니다 :

<Window x:Class="WpfApplication1.DialogWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="DialogWindow" Height="300" Width="300" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow" ShowInTaskbar="False"> 
    <!--Some content--> 
</Windows> 

그리고 이것은 두 번째 창을 보여줍니다 코드입니다 : 내가이 문제를 해결하고 여전히 대화 상자를 표시 할 수 있습니까

private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     var dialogWindow = new DialogWindow(); 
     dialogWindow.ShowDialog(); 
    } 

을 작업 표시 줄에 표시되지 않는 창?

답변

5

부모 창에 DialogWindow.Owner 속성을 설정해야한다고 생각합니다. 항상 부모의 앞에 모달 DialogWindow을 넣어해야이 답변 WPF: How do I set the Owner Window of a Dialog shown by a UserControl?

private void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    var dialogWindow = new DialogWindow(); 
    dialogWindow.Owner = Window.GetWindow(this) 
    dialogWindow.ShowDialog(); 
} 

를 참조하십시오.

+0

고마워,이 완벽하게 작동합니다, 대단히 감사합니다. –

0

대화 상자 창에 TopMost=True을 설정하십시오.

+0

네,하지만 다른 모든 창에 표시됩니다. 다른 방법이 있습니까? –