问题标签 [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.
opengl - 在 openGL 中,如何让项目向后拉到前面?
默认情况下,对象似乎是从前到后绘制的。我正在绘制一个 2-D UI 对象,并希望从前创建它。例如,我可以先创建一个白色方块,然后在其顶部创建一个稍小的黑色方块,从而创建一个带有白色边框的黑色窗格。 这篇文章对此进行了一些讨论,并将此顺序描述为“画家算法”,但最终他们给出的示例只是简单地以相反的顺序渲染对象以获得所需的效果。我想从前到后(第一个对象在后面,后续对象在顶部绘制)渲染可以通过一些转换来实现(gOrtho?)?
我还会提到,我对使用 GLUT 等包装库的解决方案不感兴趣。
我还发现,使用 Cocoa NSOpenGLView 在 Mac 上的默认行为似乎会向后拉,而在 Windows 中我无法获得这种行为。我正在使用的 Windows 中的设置代码是这样的:
c# - 使另一个应用程序的窗口位于最上方后失去焦点
我正在将另一个应用程序的窗口置于最顶层,以确保在我的应用程序中单击会将另一个应用程序的对话框带入视图。我遇到的问题是通话后我没有将注意力重新集中到我的应用程序上。如果另一个应用程序有更多窗口,则其中一个最终获得焦点,否则没有窗口(仅查看任务栏)获得焦点。我应该从哪里开始调查这个问题?
我将另一个应用程序置于最高位置的代码是:
常数为
mfc - 创建自定义透明控件
我正在尝试创建一个自定义控件,该控件显示具有每像素 alphablend 的位图(正如你们中的一些人已经知道的其他问题)。
现在我在资源编辑器中使用了一个自定义控件,并将它附加到一个从 CWnd 派生的类。当我注册我的自定义类时,我将 WNDCLASS 结构的 hbrBackground 设置为 NULL_BRUSH 以实现控件的透明度。
在控件的 OnPaint 中,我使用 AlphaBlend 绘制每像素 alpha 混合位图。
这工作得很好,但我有这两个问题:
当鼠标悬停在控件上时,我想更改显示的位图。由于控件是透明的,因此一个位图未与另一位图重叠的区域不会被擦除。更改图像时如何擦除背景?
第二个问题与两个重叠的控件有关。我的控件被绘制在具有渐变的其他控件上(实际上是在其他控件内部)。问题是,如果我将控件放在 z 顺序之前,其他控件会与我的控件重叠并且我的控件不会显示。如果我将另一个控件放在 z 顺序之前,我无法在我的控件中获取鼠标消息。
也许我做错了什么,或者我尝试实施控制的方式错了。任何形式的帮助将不胜感激。
谢谢,
哈维尔
html - 在内容上方显示 flash
我有一个带有教程的页面(http://www.poromenos.org/tutorials/bittorrent/download),但是站点布局掩盖了 Flash 播放器,它太宽了。有没有办法通过 z 顺序(或其他东西,lightbox-y)在内容上方显示闪光灯?
wpf - 如何在 wpf 中将项目置于最前面?
我只是在彼此之上有两个网格。给定世界的一种状态,我希望网格 A 位于顶部,给定另一种世界状态,我希望网格 B 位于顶部。在过去,我们可以只调用 grid.BringToFront(),但这已经不存在了,我想不出任何方法来实现它。
我能想到的最好的情况是,我需要创建自己的自定义类来实现此功能,但这对于曾经如此简单的东西来说似乎是一种过大的杀伤力。
wpf - 确定窗口是否在 WPF 中实际可见的最佳方法是什么
我正在尝试根据单击系统托盘应用程序中的通知图标来切换小窗口的显示。这很容易实现,但是当显示小窗口并且另一个应用程序获得焦点并因此移动到它前面(z 顺序)时,我希望切换假设小窗口现在被隐藏,即使它的可见性是仍然设置为可见。否则,单击图标会将窗口可见性设置为隐藏,即使它已经隐藏在另一个之后。我已经尝试捕获/覆盖激活和停用方法以跟踪但单击通知图标将始终导致停用事件首先触发。使用焦点/失去焦点的类似方法没有 也不起作用,因为即使隐藏在另一个正在使用的应用程序窗口后面,窗口似乎也认为它仍然有焦点。最后,我不得不求助于本机代码和 WindowFromPoint 方法,如下所示:
这将检查在相关窗口中心坐标处返回的窗口是否与所述窗口匹配。即有问题的窗口的中心是可见的。
这似乎有点hacky,有没有更好的方法来实现相同的结果?
wpf - 您如何在后面的代码中将添加到画布的用户控件置于前面
我有一系列用户控件,它们在后面的代码中从画布中添加和删除。我需要确保某些人领先于其他人。您如何设置,曾经是 VB6 中的 ZOrder,用户控件添加到画布后的顺序?
.net - 涉及 TopMost 和 Invoke 的 Z-Order 问题
我正在使用 Form.ShowDialog() 显示对话框。表单设置为 TopMost。一些图像处理计算在后台异步执行。它们的结果由 Invoke 以主要形式呈现。到现在为止还挺好。奇怪的是,模态对话框时不时地移动到主窗体后面。我想当构建对话框的消息被 Invoke 以某种方式“干扰”时会发生这种情况。
任何想法如何解决这个问题?
c# - c# wpf重叠控件不接收鼠标事件
我正在构建一个画布控件。这个根画布有几个重叠的孩子(画布也是如此)。这样做是为了让每个孩子都可以处理自己的绘图,然后我可以使用任何孩子组合来组合最终结果以获得所需的行为。
就渲染而言,这非常有效。但是,这不适用于鼠标事件。鼠标事件的工作方式如下(以 previewmousemove 为例):
1-如果根画布在鼠标下,则触发事件 2-检查所有子级,如果有一个在鼠标下,则触发事件并停止
因此,只有我添加的第一个孩子会收到鼠标移动事件。该事件不会传播到所有孩子,因为它们重叠。
为了克服这个问题,我尝试了以下操作: 1- 覆盖根画布中的鼠标事件 2- 对于每个事件,找到所有想要使用 VisualTreeHelper.HitTest 处理事件的子级 3- 对于返回有效命中测试结果的所有子级(即:在鼠标下并愿意处理事件(IsHitTestVisible == true)),???
这就是我卡住的地方,我不知何故需要将鼠标事件发送给所有孩子,并停止事件的正常流程以确保第一个孩子不会收到两次(通过事件中的handled = true)。
通过将 RaiseEvent 与传递给子级的相同事件一起使用,事情似乎可以正常工作,但不知何故它也会在父级(根画布)上引发事件。为了绕过这一点,我需要创建事件的副本并设置强制设置源,尽管它似乎更像是一种 hack 而不是解决方案。有没有合适的方法来做我想做的事情?代码示例如下。
c# - 如何在运行时判断哪个控件在前面?
我有一个容器控件(a Panel
),其中Forms
加载了许多。基于用户交互,我有.BringToFront()
一定的形式。但是,在程序的其他部分,我想弄清楚当前是哪个表格。(换句话说,确定哪个是最后一个.BringToFront()
调用其方法的表单。)
确定哪个控件在前面的最佳方法是什么?