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