Visual Studio 2010では、ドッキング可能なWindowsはあらゆる状況で期待どおりに機能するようです。
「フローティング」ドキュメントがアクティブで、いくつかのメニューが選択されている場合(たとえば、[編集]-> [貼り付け])、[フローティング]ドキュメントにはフォーカスがあり、コマンドはその[フローティング]ウィンドウに対して実行されます。また、これがUIにはっきりと表示されていることに注目してください。チームメニューが選択されていても、MainWindow.xamlはアクティブであり、VisualStudioのメインウィンドウは非アクティブです。
さまざまなサードパーティのドッキングコンポーネントを使用して同じ動作を実現しようとしていますが、すべて同じ問題があります。メニューを選択すると、メインウィンドウがフォーカスされ、フローティングウィンドウにフォーカスがなくなります。ここでVisualStudioと同じ動作をする方法を知っている人はいますか?
現在、 Infragistics xamDockManagerを使用していますが、次のサンプルコードで問題を再現できます。
- 「ヘッダー1」を右クリックして「フロート」を選択します
- 「ファイル」メニューをクリックします
- MainWindowがどのようにフォーカスを受け取るかに注目してください。
xmlns:igDock = "http://infragistics.com/DockManager"
<DockPanel LastChildFill="True">
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="_New"/>
</MenuItem>
</Menu>
<Grid>
<igDock:XamDockManager x:Name="dockManager" Theme="Aero">
<igDock:DocumentContentHost>
<igDock:SplitPane>
<igDock:TabGroupPane>
<igDock:ContentPane Header="Header 1">
<TextBox Text="Some Text"/>
</igDock:ContentPane>
<igDock:ContentPane Header="Header 2">
<TextBox Text="Some Other Text"/>
</igDock:ContentPane>
</igDock:TabGroupPane>
</igDock:SplitPane>
</igDock:DocumentContentHost>
</igDock:XamDockManager>
</Grid>
</DockPanel>