WPF 应用程序声称桌面空间类似于 Windows 任务栏

Gun*_*nny 5 c# wpf windows-xp taskbar windows-7

我正在构建一个 WPF 应用程序,该应用程序旨在充当通知工具栏,用于向企业软件平台的用户发送消息。它是一个具有特定高度的栏,一直延伸到用户桌面的底部,位于 Windows 任务栏的正上方。

我想做的是让我的应用程序“声明”或“保留”它占用的空间,并且不允许任何应用程序在其后面加载。例如,如果您要调整 Windows 任务栏的大小并使其变大,它将移动图标和快捷方式,并且最大化窗口将仅使用任务栏尚未使用的桌面区域。

知道如何实现这一点吗?它已经设置为桌面上最上面的项目,所以这不是我的问题。现在,如果您打开另一个应用程序并将其最大化,那么底部的 X 像素将隐藏在我的工具栏应用程序后面。

(请注意,我已经添加了 Windows 7 和 Windows XP 标签 - 我希望能够在 WinXP 及更高版本上实现此功能,但如果我无法在特定版本上执行此操作,我可以来提出解决方法)

Jos*_*osh 5

这些在 Windows 中称为AppBar,您可以使用 SHAppBarMessage 函数将窗口“停靠”到显示器的一侧。然后,其他窗口在最大化时不会遮挡停靠的窗口。

下面是一个类似问题的链接,其中包含更多信息,包括指向 CodeProject 页面的链接,该页面将引导您创建一个项目。