问题标签 [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.
c# - 如何使用 WinForms 设置控件的 Z 顺序
我正在编写一个自定义TextBox
,在获得焦点后会更改其边框样式。
由于添加边框会导致控件与相邻的控件重叠,因此我暂时将文本框置于对话框的前面(使用textBox.BringToFront()
)。
但是,一旦编辑完成并且失去焦点,我想将控件发送回其在 Z 顺序中的原始位置。
这可能吗(最好以简单的方式!)
silverlight-4.0 - Silverlight 4 应用程序中没有得到 DragEnter/Over、Drop 事件
我将 UserControl 对象从一个 Canvas 拖到另一个 Canvas 的目的是放在那里。将鼠标悬停在目的地上时,拖动的对象实际上在其下方。我没有得到 DragEnter、DragOver 或 DragLeave 事件。如果我将对象放在那里,我不会收到 Drop 事件。
我的根对象是一个边框,然后是一个网格。网格覆盖了整个浏览器客户区。它有 8 列。在每一列中都有一个由 XAML 放置的画布。
奇怪行为的示例:当我将一个项目从第 3 列拖到第 4 列(或任何更大)时,对象在画布下滑动。如果我从第 3 列拖到第 2 列(或更小),对象会滑过顶部。因此,zorder 似乎受到画布创建顺序的影响。有人可以澄清一下吗?
每列中的 Canvas 对象都有关联的 DragEnter/Leave 事件,但无论对象在 Canvas 上方还是下方,它们都不会触发。
我发现 Canvas 必须有背景才能获取鼠标事件。列中的每个画布都有一个背景。如果我不拖动任何东西,鼠标事件就会触发。
我快到我的尽头了,我肯定会很感激一些帮助。
谢谢,格雷格
windows - 使用 Win32 API 更新许多 Windows 的 Z 顺序
场景是我有一个顶级窗口的窗口句柄列表,我想移动它们,以便它们按照我选择的 z 顺序排列。我从迭代列表开始(我希望最后的窗口位于顶部),调用SetForegroundWindow
每个列表。这似乎在某些时候有效,但并非总是如此,当我在每次通话之间稍作停顿时会有所改善。
有一个更好的方法吗?
编辑:
看起来BeginDeferWindowPos
//路线是要走的路DeferWindowPos
。EndDeferWindowPos
但是,我似乎无法一次使用多个窗口。当我将窗口列表限制为单个窗口时,它可以正常工作。当列表有多个窗口时,它似乎只得到其中一个。这是我正在做的伪代码:
我确定这是我在这里遗漏的一些小/明显的东西,但我只是没有看到它。
c# - 如何为 WPF UserControl 编写 BringToFront 方法?
我正在开发一个 UserControl,称之为 CoolControl,它的作用有点像一个窗口,具有一些特殊功能。到目前为止,它可以在屏幕上调整大小和拖动。如果我使用 XAML 将多个 CoolControl 对象添加到我的应用程序窗口,最后一个声明的对象总是在前面。这很好,但我想这样做,如果我在运行时单击我的一个 CoolControl 对象,该控件将把自己放在所有其他控件的前面。
我试过使用Canvas.SetZIndex
,但除非我无法想出一个足够聪明的解决方案,否则我看不出这对我有什么帮助。因为一旦我将一个控件的 Z-Index 设置为 9999,随着时间的推移,我单击的每个其他控件都将具有相同的值 9999。然后,最后声明的控件再次出现在前面。
如果您的任务是为某人的 UserControl 编写 BringToFront() 方法,您将如何以最简单的方式完成它?我更喜欢一个比获取父窗口更好的解决方案,循环遍历所有控件,找到最大 Z-Index,然后相应地设置 CoolControl 的 Z-Index,如果这甚至是一个有效的解决方案。
objective-c - 如何更改精灵的 Z 顺序?
我想设置我在 Objective-C 中创建的精灵的 Z 顺序,特别是在 Cocos2D 中。
这是我在尝试构建以下代码时遇到的错误:
...220: error: object cannot be set - either readonly property or no setter found
Z-Order 必须能够以某种方式设置——它只能在实例化线上设置,而不是在创建之后设置吗?我必须为 CCSprite 的属性创建一个 setter 方法吗?为什么它没有这些方法?
c# - BringToFront() 不起作用
我有一个带有启动表单的 winform 项目(如该问题的第一个答案中所述:C# winforms startup (Splash) form not hidden)。
当我使用这个splashform时,主窗体会失去焦点。我想在使用 Form.BringToFront() 关闭启动表单后立即将其带到前面,但它不起作用。
有人可以帮忙吗?
wpf - WindowsFormsHost ZOrder
似乎 WindowsFormsHost 控件设置为显示在顶部。有什么方法可以更改其 z 顺序以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件的顶部可见?
mfc - win32 CTabctrl:在活动选项卡中绘制“子”窗口
我有一个包含 CTabCtrl 的可调整大小的对话框,该选项卡控件有 4 个选项卡,单击这些选项卡时会显示四个不同的 CTreeCtrls 之一。
我从 CTabCtrl 派生了一个类,它跟踪它的“子”控件,如下所示:
我尝试像这样绘制子控件:
但是,子控件虽然出现,但并不总是正确绘制,它们会将它们的内容混合在一起,并且仅在我单击它们时才显示正确的内容(实际的树控件)。
这是在 zorder 中绘制和移动窗口的最佳方式吗,我错过了什么?
非常感谢
bg
android - 如何通过正确的视图 z 顺序在 android 中实现这个基本布局
如何在 Android 中实现以下布局?
我想要的是让 3 个蓝色框在他们的视图中顶部对齐,然后我想让红色框在蓝色框下方居中,但是当我为红色框设置动画时,它会滑到下方蓝色盒子。
我尝试将蓝色和红色框放置在不同的布局中,但是一旦我将红色框设置为动画,如果它超出其布局的边界,它就会消失(我不希望红色框的布局剪裁红色盒子,我想让红色盒子滑到蓝色盒子下面,这样蓝色盒子就挡住了红色盒子。)
我还设法使用一系列嵌套布局创建了这个布局,但是由于绘制顺序,红色框总是出现在蓝色框的顶部。我尝试使用 bringToFront() 方法,但我发现这只适用于同一布局中的兄弟视图。不幸的是,我无法在将所有 4 个视图保持在同一布局中的同时获得这种类型的布局。有什么建议么?(另外,如果有人对这个问题的标题有更好的建议,我会全力以赴)