WPF中全屏窗口,会自动隐藏任务栏。

那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务后自定义一套系统任务栏来显示?

以下会分阶段讲述一些概念,任务栏、查找窗口、控制窗口显示。

1. 主屏任务栏

任务栏,其实也是一个窗口,主屏的任务栏名称是"Shell_TrayWnd"。

所以可以通过名称查找窗口,然后对窗口进行显示、隐藏操作。

以下是主屏幕任务栏的控制操作:

 1     public static class ScreenTaskBar
 2     {
 3         private const int SwHide = 0; //隐藏窗口
 4         private const int SwRestore = 9;//还原窗口
 5
 6         [DllImport("user32.dll")]
 7         private static extern int ShowWindow(int hwnd, int nCmdShow);
 8         [DllImport("user32.dll")]
 9         private static extern int FindWindow(string lpClassName, string lpWindowName);
10         /// <summary>
11         /// 显示任务栏
12         /// </summary>
13         public static void Show()
14         {
15             ShowWindow(FindWindow("Shell_TrayWnd", null), SwRestore);
16         }
17         /// <summary>
18         /// 隐藏任务栏
19         /// </summary>
20         public static void Hide()
21         {
22             ShowWindow(FindWindow("Shell_TrayWnd", null), SwHide);
23         }
24     }
10-02 02:46