2010-03-20 46 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(); 
    } 

其可調整大小,沒有最小化選項,沒有顯示在任務欄中,附錄ars當應用程序獲得焦點時,關閉主窗口......它不包含的唯一功能是允許這些工具窗口位於主窗口後面。

+0

我自己想出了ToolWindow,但謝謝。無論如何,我仍然希望主窗口能夠在助手窗口前面。 – RandomEngy