これが可能かどうか疑問に思っていましたか?WPF アプリケーションには、アプリケーションのウィンドウである MainWindow が 1 つだけ必要なようです。別のウィンドウを作成して表示すると、MS Word のようにタスク バーに個別の項目として表示されますか?
5 に答える
親ウィンドウは WinHandle のみを保持するため、WPF は非 MDI インターフェイスを使用することをお勧めします (Winform の各 MDI 子が独自の個別の WinHandle を持つのとは異なります)。
これを最初から構築することを計画している場合、それは少し複雑で大きなプロジェクトになるでしょう... Dockmanagers
Infragistics \ Avalon Dock \ WPF Docking Library (CodeProject) など、ネットで入手可能なさまざまなものを使用することをお勧めします.
これらは、WinForms の MDI ウィンドウと同様に機能します (つまり、親スペースに子ウィンドウを含めることができ、 Visual Studioのように配置およびドッキングしたときにそれらをタブ化することもできます) 。
おそらく、次のような単純なものです。
// http://stackoverflow.com/questions/6417558/wpf-and-showdialog
Window window = new Window()
{
Title = "Modal Dialog",
ShowInTaskbar = true, // show the dialog on the taskbar
Topmost = true, // ensure we're Always On Top
ResizeMode = ResizeMode.NoResize // remove excess caption bar buttons
};
window.ShowDialog(Application.Current.MainWindow);
私はこれを考えすぎていたようです。私がする必要があったのは、子ウィンドウを作成して を呼び出すことだけでしたWindow.Show()
。
もちろん、「MDI」らしさは組み込まれておらず、このソリューションを使用して手動で管理する必要があります。
現在取り組んでいる WPF アプリには 2 つのウィンドウがあります。アプリの実行中はタスク バーに 2 つの項目が表示されるので、これは間違いなく可能です。