繁体   English   中英

C#总是像TopMost一样设置一个窗体,但是与其他窗口的交互总是可能的

[英]C# Setting a Form like always TopMost, but interaction is always possible with other windows

在此处输入图片说明

这是Form的屏幕截图。 基本上只是屏幕顶部的这两行,当您将它们悬停时,会弹出这个小窗口。 我只是想知道这两行可能是什么。

我没有在互联网上找到有关如何实现熟悉的东西的任何信息。 我只想知道背后的想法,也许一些示例代码可以很好地说明这个想法。

这只是某种自定义窗口吗? 那么WPF可能是要走的路吗? 如果是这样,即使无法将其设置为TopMost Form ,又如何设置一个始终可见且可用的Form (不需要单击Form以获得焦点即可与之交互)?

this.TopMost = true;

因为我仍然可以与其他窗口进行交互,所以这两行自定义窗体仍然可见并且覆盖了所有其他窗口。 但是在任何情况下, 这两行自定义表单都不会重叠。 这个自定义表单背后的想法是什么?


更新:

经过互联网上的一些其他研究之后,似乎TopMost属性有时并没有达到您的预期。 我只是对其进行了几次测试,现在它的行为完全符合我的描述。


更新这两行表格的工作方式:

假设您在“全屏”中打开了任何窗口。 但是这两行窗体在屏幕顶部。 它会悬停所有其他窗口,但不会像AppBar那样声明它自己的空间。 两行Form永远不会隐藏,因此不涉及AutoHide 这只是带有“ 屏幕截图区域 ”的窗口,...悬停在窗体两行后会弹出。 此外, 两行表格绑定到屏幕顶部。

TopMost = true它应该可以正常工作(在WinForms和WPF中也是如此)。 TopMost意味着窗口将始终在没有设置此标志的情况下显示在任何其他窗口上(因此,另一个最顶层的窗口可能会覆盖您最顶层的窗口),包括当前活动的窗口。 因此,屏幕快照上最有可能的是与屏幕顶部对齐的,尺寸很小的最上面的窗口,它在鼠标悬停时显示另一个窗口(或自行扩展),并在鼠标移出时隐藏该窗口(或自行收缩)。 我不是WinForms的专家,所以如果在某些情况下对您不起作用-您可能会在Google中找到有关为什么以及何时不起作用的信息(例如,有人声称它在什么时候不起作用)您可以从Visual Studio运行应用程序,因此请确保在测试时独立运行该应用程序)。 但是一般而言,TopMost属性应该按照您的描述进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM