问题标签 [z-order]

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.

0 投票
1 回答
933 浏览

swing - 保持在主应用程序窗口顶部的最小化 JFrame

我的应用程序会弹出一个对话框。用户通常希望在此对话框和应用程序窗口之间来回切换一段时间。我希望这个对话框保持在顶部,这样它就不会隐藏在主应用程序窗口后面。但同时我希望对话框有一个最小化按钮,以便在一段时间内不需要它时可以让开。

这是我尝试过的:

  • 使用无模式的 JDialog - 对话框很好地保持在前面,但它没有最小化按钮,也没有自己的任务栏按钮

  • 使用 JFrame - 对话框现在有一个最小化按钮和它自己的任务栏按钮,但是当主窗口获得焦点时,对话框隐藏在它后面。

  • 使用 JFrame 并在对话框中添加 WindowListener.windowDeactivated() { this.toFront() }。这样做的问题是 toFront() 也设置了焦点,所以你会得到一个奇怪的焦点闪烁效果。

  • 使用带有 setAlwaysOnTop 的 JFrame - 这是最接近的解决方案,但现在窗口将位于所有其他应用程序之上,而不仅仅是我的应用程序。

如果 toFront 只是在不改变焦点的情况下将 JFrame 带到前面会很容易,但不幸的是,情况并非如此。是否有另一种方法来更改 JFrame Z 顺序?

编辑:我突然想到,如果有一种简单的方法可以“汇总”JDialog,即最小化它而不是任务栏,那也可以解决我的问题。

0 投票
3 回答
925 浏览

windows - 在任何其他现有的第三方窗口后面放置一个窗口

为了截取特定窗口的屏幕截图,我需要在该窗口后面放置一个白色 TForm。我可以使用什么 Windows API 来更改窗口的 z 顺序并将其正确放置?

0 投票
2 回答
3157 浏览

wpf - 需要在 WPF 应用程序中控制窗口的“Z 顺序”

我有一个应用程序,由于 OpenGL 空域问题,它必须在单独的专有窗口中托管多个控件。这工作得很好,但我将所有窗口设置为TopMost = true,这意味着即使它们失去焦点,它们也会保持显示,但它们也会覆盖其他应用程序。此外,它让我一次只能使用一个窗口。Activate()也不行。

0 投票
2 回答
482 浏览

jquery - JQuery:创建在悬停时显示在div顶部的盒装文本

假设我有一个名为 mainDiv 的 div,它包含一个<p>元素,里面有一些文本。我想在您将鼠标悬停在第一个元素上时显示的同一个 div 内创建另一个元素(可能是 a<p>或 a<div>或其他东西?),并且在您将鼠标移离第一个元素后很快隐藏。优选地,第二个元素中的文本被封闭在一个黑盒子中,或者类似于Facebook照片页面标题的东西,例如。<p>

如何才能做到这一点?我正在考虑为悬停事件添加一个切换功能,但我不确定该怎么做,因为我对 JQuery 很陌生。另外,您能否提供一些 CSS来为悬停时显示的元素创建一个框(可能是半透明的,可能不透明度为 60% 左右?)?此外,如果这可以通过 toggle() 来完成,是否可以将 toggle() 与动画速度一起使用,例如慢或快(如 show(slow) 中的)?

另外,我认为高 z 顺序对于此目标至关重要,但我不确定该框是否会直接显示在上方,而不是侧面,或类似的东西。

0 投票
1 回答
1350 浏览

actionscript-3 - AS3 - 使用 Matrix3D 对象重新排序显示

我正在处理大约 20 个在 3D 空间中移动的对象。Adobe 建议“使用 Matrix3D 对象重新排序显示”:

  1. 使用 Transform 对象的 getRelativeMatrix3D() 方法获取子 3D 显示对象的相对 z 轴。

  2. 使用 removeChild() 方法从显示列表中删除对象。

  3. 根据显示对象的相对 z 轴值对显示对象进行排序。

  4. 使用 addChild() 方法以相反的顺序将子项添加回显示列表。

伟大的。如果物体不移动,那很好。但是,如果发生动画并且在 z 空间中一个对象出现在另一个对象的前面怎么办?对象根据显示列表中的位置显示,而不是根据它们的 z 顺序。如何让对象在制作动画时尊重 z 顺序(如果对象 A 的 z 值变得小于对象 B,则使对象 A 出现在对象 B 的前面)?显然,您无法在动画期间清除显示列表。

0 投票
2 回答
339 浏览

wpf - 如何控制 WPF 中顶级窗口的不透明度和 z 顺序?

我想让一个小型 WPF 应用程序窗口半透明并位于其他窗口之上。

当我更改顶层窗口的设置时,它似乎只影响内容,而不是标题栏或边框。

WPF有可能吗?

谢谢

0 投票
1 回答
2389 浏览

wpf - WPF 动画 - 将画布放在前面

我有一个动画,我在一个透明的Canvas. 我将其设置Canvas为 a 的内容,Button然后运行动画。(有关代码,请参阅此问题。)

问题是有时动画会被放在我的应用程序的其他 UI 元素后面(我正在使用 Avalon Dock,它在它所在的前面DockableContent,但在它旁边的后面。)在某些测试中,这似乎是相关的以某种方式调整按钮的大小(如果它溢出了DockableContent)。

知道我怎样才能把Canvas它放在首位吗?(注意:我并不是想将画布中的元素提升到 .) 中的其他元素之上Canvas。)

谢谢你的帮助。


编辑: 发生这种情况是因为我有一个ScrollViewer持有动画的按钮Canvas。这导致它扩展而不是覆盖。

我可以想到一些解决方法,但我愿意接受建议。

0 投票
1 回答
2282 浏览

wpf - 我可以只为右键事件将 IsHitTestVisible 设置为 false 吗?

显然,对这个问题的直截了当的回答是“否”,但对我来说达到这种效果的最佳方法是什么?为了解释,这里有一些背景......

我有一个应用程序,它显示一个图像以及该图像上的几层叠加形状。所有这些都放置在一个网格单元中,彼此重叠,图像位于局部 z 顺序的底部。为了提高速度,叠加层被实现为从 FrameworkElement 派生的类,它们创建和管理自己的视觉效果。

这是一个基本图(尽管分解为 3D),说明了层的排列方式以及它们具有/需要的交互:


重叠控制.png http://www.afterbang.co.uk/mal/stackoverflow/overlapped_controls.png


如您所见,上层叠加层必须允许用户在图像的任何位置拖出一个新矩形。为此,我给了它一个透明的背景,就像一块可以在上面画画的玻璃板。这样做的明显缺点是它会阻止所有鼠标事件向下传递到较低层。

我真的很想只将鼠标左键的事件捕获顶层的透明区域中,并让其他事件在 z 顺序的下方进一步命中层。

对于这种事情,我应该遵循 WPF 模式吗?有什么最佳实践或技术吗?

我对 WPF 还很陌生,但想编写一个与 API 一致的解决方案。谢谢。

0 投票
4 回答
625 浏览

wpf - 另一个 WPF 窗口前面的 WPF 窗口

我有一个 WPF 窗口,您可以在其中单击一个按钮来查看一个新窗口。现在我想禁用,您可以单击主窗口。它应该像一个 MessageBox。

0 投票
2 回答
1280 浏览

windows - 如何让透明的窗口对话框和绘图原语保持在绘制流视频的窗口顶部?

我有一个 activeX 控件,其中包含一个窗口,该窗口具有正在绘制的流式视频。我有一个单独的对话框,我在另一个窗口中创建了一个单独的对话框,我以各种方式将其设置为透明或半透明(即使用 SetLayeredWindowAttributes(...) 以及对话框的 Layered 属性 [用于 alpha 混合] 或设置透明财产)。

此外,我尝试使用各种方法来尝试让对话框的窗口始终绘制在流视频窗口的顶部,但没有一种方法对我有用。如果我在对话框上有一个按钮或使用 LineTo(...) 调用在透明表面上绘图,它们不会保留在视频顶部。我尝试使用 SetWindowPos 来影响两个窗口的 z 顺序,并尝试更改对话框窗口属性,例如“TopMost”,但无济于事。

有没有人试图为流视频上的覆盖窗口做这样的事情,并让 z 顺序在流视频之后始终绘制前窗口?

更新:02/10/10 - 尝试使用 WS_EX_LAYERED 属性和 SetLayeredWindowAttributes(...) 使用 LWA_COLORKEY 并实现了我想要的。由于分层属性不能与 WS_CHILD 样式一起使用,因此该解决方案带来了一些必要的覆盖窗口位置管理,该位置相对于带有视频的窗口。此外,我还试图消除其他一些奇怪的东西。例如,当带有视频的 activeX 控件窗口嵌入到 IE 选项卡中并且我切换到另一个选项卡时,覆盖窗口上的控件仍保留在新选项卡的顶部(使用 WS_POPUP 样式时)。仍在研究是否会有其他方法来处理这个问题,然后确定开关和隐藏窗口可见性。