Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个.NET应用程序;“码头”;位于屏幕一侧,并限制其他窗口';最大化时的尺寸_.net_User Interface_Gdi - Fatal编程技术网

创建一个.NET应用程序;“码头”;位于屏幕一侧,并限制其他窗口';最大化时的尺寸

创建一个.NET应用程序;“码头”;位于屏幕一侧,并限制其他窗口';最大化时的尺寸,.net,user-interface,gdi,.net,User Interface,Gdi,我从上级那里得到一个有趣的请求。他们想要一个简单的应用程序,可以在用户的电脑上显示多个时区的时间。这本身是微不足道的;一个带有计时器的简单窗口,该窗口将获取当前UTC时间,并将其转换为他们希望看到的任意数量的时区,以更新某些标签的文本 然而,问题就在这里;为了满足所有方面的要求,窗口永远不会被桌面上的任何东西遮挡。用户将运行其他必须始终完全可见的应用程序,同时这些窗口之一无法覆盖此应用程序 因此,我想通过以下两种方式之一实施: 作为一个始终处于顶部的应用程序,背景将是完全透明的,时间显示将是5

我从上级那里得到一个有趣的请求。他们想要一个简单的应用程序,可以在用户的电脑上显示多个时区的时间。这本身是微不足道的;一个带有计时器的简单窗口,该窗口将获取当前UTC时间,并将其转换为他们希望看到的任意数量的时区,以更新某些标签的文本

然而,问题就在这里;为了满足所有方面的要求,窗口永远不会被桌面上的任何东西遮挡。用户将运行其他必须始终完全可见的应用程序,同时这些窗口之一无法覆盖此应用程序

因此,我想通过以下两种方式之一实施:

  • 作为一个始终处于顶部的应用程序,背景将是完全透明的,时间显示将是50%透明的或类似的。将鼠标移到窗口上会通过移除时间显示的透明度和/或添加不透明的高对比度背景来“突出”时间显示。AFAIK此解决方案不能使用Windows Aero,因为主要用户的操作系统是Windows XP

  • 作为一个应用程序,它使用低级Windows消息以某种方式模拟Windows任务栏在“始终在顶部”模式下的行为;它将停靠在屏幕顶部,始终显示在“正常”状态窗口的顶部,并且还将控制其他窗口的“最大化”行为,以便这些窗口在最大化时不会重叠


我真的不知道从哪里开始实现这两个选项,但我会冒险猜测,鉴于WinXP的限制,如果可能的话,第二个选项更容易实现。那么,我希望实现什么样的行为来告诉Windows永远不要在我的表单顶部实现最大化?

作为一句墓志铭,由于Hans Passant似乎不愿发布答案,我发现我需要的是使应用程序成为一个“应用程序桌面工具栏”或Appbar。Hans提供的CodePlex链接以及有关该主题的MSDN文章提供了大量信息。我几乎能够将定义AppBar行为的CodePlex中的代码区域复制/粘贴到一个正常的.NET表单中,以创建一个简单的概念证明:


我对CodePlex代码所做的一个更改是将将将表单注册为AppBar的RegisterBar()的一半与将其拆下的代码断开,因此调用RegisterBar()总是这样做,而不是交替注册和取消注册。

我已经有一段时间没有看过它们了,但我想知道像Yahoo Widgets这样的东西是否能够完全满足您的要求,而无需编写任何东西。您将需要pinvoke SHAppBarMessage()。谷歌在这方面的点击率很高,第一次点击:@dkackman:这是一个好主意,但我认为高层不会支持在这些工作站上安装雅虎产品。问题中的regs是UL regs,计算机基本上由呼叫人员使用,所以他们的工作站很难锁定。@HansPassant:这正是我需要的。我将进行更多研究,看看这在我们的情况下是否可行,但基本概念与我们的要求完全匹配。