2010-03-20 10 views
0

WPF에서 응용 프로그램을 작성하고 "도우미"창을 만들고 싶습니다. 창의 크기를 조정할 수 있어야하며 최소화 옵션이 없으며 작업 표시 줄에 표시되지 않습니다. 앱에 포커스가 있으면 포커스가 표시되어야하지만 포커스가 메인 윈도우의 앞이나 뒤로 있는지 여부가 유지되어야합니다. 기본 창이 닫히면 앱과 함께 닫아야합니다.WPF에서 "도우미"창 만들기

예제는 Visual Studio에서 분리 된 창입니다.

도우미 창을 작업 표시 줄에 나타나지 않게 만들었지 만 원하는 나머지 동작을 수행 할 수 없습니다. 자신의 창문이라면 나머지 앱과 함께 초점을 맞추지 않아도됩니다. 주 창을 소유자로 지정하면 주 창을 도우미 창 위에 올 수 없습니다.

누구나이 접근 방법을 알고 있습니까?

답변

1

당신이 찾고있는 것이 "모덜리스"대화 상자와 같다고 생각합니다. WPF를 사용하지는 않지만 여기에 대한 설명은 매우 간단합니다.

http://msdn.microsoft.com/en-us/library/aa969773.aspx

+0

나는 이미 (무의식적으로) 소유자를 설정하고 .Show()를 호출하여 시도했다. 문제는 대화 상자가 소유자 윈도우에 포커스가 있더라도 항상 소유자 윈도우의 맨 위에 표시된다는 것입니다. 또한 창 최소화를 방지하지 못합니다. – RandomEngy

1

당신은 같은 것을 시도 할 수 :

<Window x:Class="HelperWindowDemo.HelperWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="HelperWindow" Height="300" Width="300" 
    WindowStyle="ToolWindow" 
    ShowInTaskbar="False"> 
<Grid> 
    <TextBlock>Helper window..</TextBlock> 
</Grid> 

을하고,이 효과에 뭔가를 보여주고 싶은 그러나 :

private void AddHelperWindow_Click(object sender, RoutedEventArgs e) 
    { 
     var window = new HelperWindow { Owner = this }; 
     window.Show(); 
    } 

는 크기 조정을, 최소화 옵션이 없으며 작업 표시 줄에 표시되지 않습니다. 앱이 포커스를 얻었을 때 메인 윈도우로 닫을 때 ... 커버하지 않는 유일한 방법은이 툴 윈도우가 메인 윈도우 뒤에 있도록하는 것입니다.

+0

저는 독자적으로 ToolWindow를 알아 냈지만 감사합니다. 어쨌든, 나는 여전히 기본 창을 도우미 창 앞에 둘 수 있기를 원합니다. – RandomEngy

관련 문제