问题标签 [topmost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - 在 WPF 中制作最顶层的控件
我有一个表单,用户可以在其中选择各种表单元素并拖动它们。由于用户可以自定义表单的布局,因此我使用的是画布,并且所有元素都是它的子元素。
当两个元素在同一区域中时,无论最后添加哪个作为画布的子元素,都将在顶部绘制。我希望能够将任何活动元素(被拖动的元素)设置为最顶部的元素。
我使用了 SetZOrder 方法,将其设置为 0,但它什么也没做。在检查我调用 GetZOrder 的所有元素后,我得到的每个元素都为 0,这就是为什么将其设置为 0 并没有什么区别。
我找到并且确实有效的唯一解决方案是删除元素并将其添加到画布。
虽然这行得通,但我觉得必须有一种更喜欢和更正确的方法来做到这一点。
c# - 如何创建一个锁定/冻结所有其他应用程序且无法关闭的 WinForms 应用程序?
我正在用 c# 编写一个应用程序来锁定或冻结所有程序,直到用户在应用程序的文本框中输入一个值并单击确定。
该应用程序的目的是让人们输入他们的时间。
据我所知,您可以将其设置为最高,但他们可以使用任务管理器结束应用程序,所以我被困在这里..
任何帮助,将不胜感激
c# - 当任务栏/开始菜单结束时,窗口消息发送到我最顶层的表单/窗口?
我在 Windows 7 中有一个 C# Windows Forms 程序,但我认为它适用于任何 Windows 程序。
我的程序的主窗体覆盖了整个屏幕,并设置了 Topmost 属性。但是,例如,当我单击“开始”键打开“开始”菜单时,任务栏和“开始”菜单会显示在“始终位于顶部”表单的顶部。
当发生这种情况并且我的表单/窗口不再是最顶层的窗口(或 Z 顺序的顶部)时,是否有窗口消息 (WM_) 发送到我的表单/窗口?我想用 WndProc 来捕捉它。
谢谢
wpf - Window.Topmost=false 不能可靠地停止 topmost-behavior
我正在寻找一种方法来解决我认为 WPF 的错误。这是该问题的最简化示例。显然,在这种情况下,它违背了 Window.Topmost 的目的,但它使问题变得非常简单。在实现 System.Windows.Window 时:
这不会可靠地阻止 Window 或其内容继续绘制另一个新激活的应用程序。例如,如果我单击记事本的文本区域,WPF 窗口将在记事本上绘制。如果我单击记事本的顶部(这对于我尝试过的大多数其他应用程序来说是典型的)我的 WPF 窗口将绘制直到 MOUSEUP 发生并且只有当它发生得足够快时。我可以反复 MOUSEDOWN 并且只要我的 MOUSEUP 不会太快落后于它,窗口就会保持在最上面。但是,在某些情况下,它会可靠地绘制在后面,这取决于我在哪个应用程序中单击的位置,或者如果我单击第二个应用程序,它永远不会在那个应用程序之上绘制。
注意:在实践中,我想要做的是使用一个透明的覆盖层,它“粘”在 Windows 窗体上。因此,在这种情况下,当用户与表单交互时,它已经在 99% 的时间内被停用。由于我无法可靠地关闭窗口的 TopMost,因此我的应用程序的不透明位继续浮动在其他应用程序之上。强制窗口渲染不会改变任何东西。
附加的屏幕截图显示了该错误如何在单击第二个应用程序时不会再次出现,但它仍位于第一个窗口的顶部(红色位来自我的应用程序)。
c++ - 有没有办法保证 Internet Explorer 永远是最顶层的窗口?
我正在尝试将 Internet Explorer 窗口设置为 TOPMOST。Internet Explorer 窗口顶部不应显示其他窗口。我必须使用 Internet Explorer。我也在 Windows 7 中运行它。显然这有所不同,但我发现的所有信息都相当模糊,基本上是人们大喊“为什么这不简单!”。这是我的代码:
这是循环运行的,因此我可以强制窗口连续进行这些设置,但这无济于事。有时上面的代码有效,有时无效。
c# - 如何在 C# 中的最顶层窗体窗口上打开一个对话框
我有一个我制作的 C# 程序,它使用表单为用户显示控件。主窗体在其上打开其他窗体,每个新窗体设置为topmost
在程序中我调用PDFCreator以制作新的 PDF 文件,但由于设置为“最顶层”的表单,我看不到对话框
有没有办法解决这个问题
c# - 启用和发布 ClickOnce 时,从工作线程调用的 Windows.Form topmost 不起作用
我有一个作为表单的主线程,它启动另一个应用程序,在本例中为记事本,然后我生成一个等待记事本关闭的 BackgroundWorker。当它关闭时,BackgroundWorker 会向用户显示另一个要在最顶层显示的表单。这个表单需要是非模态的,以便用户可以点击主线程对话框上的一些按钮。问题是这个表单(Form2,来自 BackgroundWorker)不是 TopMost,即使我将它设置为 true。当我点击 F5 时它可以工作,但是当我作为 ClickOnce 应用程序发布到我的服务器时,form2 不再是 TopMost。我已经厌倦了 Form2.Topmost = true, BringToFront, Activate, "MakeTopMost"什么是强制表单放在前面的强大方法?....似乎没有任何工作。
我什至试图获取主窗体的句柄,并将其用作 form2 的父窗体,但我得到“InvalidOperationException:跨线程操作无效:控制'Form2'从线程之外的线程访问它是创建于。”
这是一个代码片段:
还有其他想法吗?或者有人可以修复我上面的代码吗?我已经处理这个问题好几个星期了,而且很慌张。
谢谢!
wpf - WindowsFormsHost 始终是 WPF 元素中最顶层的
如何设置 z-index windowsformhost 它们并不总是位于 WPF 元素的顶部?
c# - 在运行时更改 topMost
我正在使用此代码.. 现在默认情况下我的应用程序是 topMost = true
但是当我尝试让一个按钮在下面执行这个功能时,我遇到了一个问题,它会禁用它一次。然后第二次点击不再。
任何想法为什么?过去通过菜单设置热键也发生过这种情况,我能够做到一次,然后就没有工作了:(
编辑:我发现了如何做到这一点,但无法从另一个表格中做到这一点。
c++ - 如何使窗口出现在所有内容之上(甚至是全屏游戏!)c++/Qt
我正在尝试制作一个应用程序,在屏幕中心显示十字准线并保持在其他所有内容之上。目的是在一些没有提供十字准线的 FPS 游戏中设置准星。除了游戏之外,我已经成功地将我的窗口放在了最上面:/
这是我的代码:(一切都很重要,因为我只测试我的应用程序的核心功能,我已经对其进行了广泛的评论,以尝试让我的问题更容易理解)
我的猜测是游戏等应用程序对显示设备有更直接的控制。我正在寻找这个问题的任何解决方案(不一定是涉及透明最顶层窗口的解决方案)。另外,如果有人可以向我解释如何有效地使用 GetLastError(),以及为什么游戏的行为与普通窗口不同。
提前致谢。