フローティングペインを最小化すると、タスクバー左上にウインドウ操作 UI が表示され、こちらを操作することで画面上に復帰させることができます。

今回は画面復帰をコードで行う方法をご紹介したいと思います。

ContentPane を操作するかと思いきや、今回は ContentPane をフローティングさせる際に、ContentPane をホストする “ToolWindow” を操作します。いかにも操作したくなる名前ですね。

該当の ContentPane(今回はフローティングしている ContentPane のため、PaneLocation: Floating のものが対象です。)をホストしている ToolWindow に対して、Window の状態を司る “WindowState” を変更してあげるだけなのです。とっても簡単ですね。

最小化していると WindowState が Minimized になっていますので、これを Nomal に設定変更することで、画面復帰させることができます。

以下はボタンのクリックイベントで実装したものです。

private void button5_Click(object sender, RoutedEventArgs e)
{
  // GetPanes で xamDockManager 内の全ての Pane を取得します。
    var allContentPanes = xamDockManager1.GetPanes(PaneNavigationOrder.VisibleOrder);

    foreach (ContentPane contentPane in allContentPanes)
    {
        // foreach で回して、Floating ペインのみに以下の操作をしていきます。
        if (XamDockManager.GetPaneLocation(contentPane) == PaneLocation.Floating)
        {
      // 該当の ContenPane をホストしている ToolWindow を取得します。今回はこちらを操作していきます。
            ToolWindow toolWindow = ToolWindow.GetToolWindow(contentPane);

      // さらに、最小化されている ContentPane をチェックします。
            if (toolWindow.WindowState == WindowState.Minimized)
            {
                toolWindow.WindowState = WindowState.Normal; 👈 ココで WindowState に Nomal を設定してあげます。
            }
        }
    }
}

ぜひお試しください。

以下は画面復帰の瞬間です。

Tagged:

製品について

Ultimate UI for WPF