【发布时间】:2016-02-29 11:42:08
【问题描述】:
我想在 C# 中制作一个类似于窗口任务栏的菜单栏,但我想知道如何使表单保持在屏幕顶部,并且其他程序不会像窗口任务栏和鼠标悬停时那样将其粘贴在上面在一个图标上,它将显示如下形式:
【问题讨论】:
我想在 C# 中制作一个类似于窗口任务栏的菜单栏,但我想知道如何使表单保持在屏幕顶部,并且其他程序不会像窗口任务栏和鼠标悬停时那样将其粘贴在上面在一个图标上,它将显示如下形式:
【问题讨论】:
Windows 对此提供了便利,基本上可以让您创建停靠在屏幕一侧并且始终可见的伪任务栏。很久很久以前,Office 团队(可能为Office 团队公开记录)使用它来创建桌面工具栏。
无论如何,它们被称为Application Desktop Toolbars(或“AppBars”),文档为here。要注册一个,请使用ABM_NEW message 调用SHAppBarMessage 函数。完整的示例代码可在链接文档中找到,不幸的是它是 C++ 语言。
要在 C# 应用程序中使用它,您必须 P/Invoke。据我所知,它在任何地方都没有被 .NET Framework 包装,可能是因为它不再被任何人使用。 This CodeProject article 似乎写出了必要的 P/Invoke 定义。我不能保证他们的正确性,但有文档武装,例如,你应该能够制作一个工作演示。
还有另一篇 CodeProject 文章 here,由 Arik Poznanski 撰写,是关于使用 C# 的 shell 功能系列的一部分。它看起来更彻底,可能比你需要的更多。
【讨论】:
设置属性Form.TopMost 除非您有其他程序创建最顶层的窗口。呵呵!
【讨论】: