问题标签 [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# - 新的 WPF 窗口仅显示在原始窗口下方
在我的 WPF 应用程序中,我在主窗体上有一个 ListView,它显示来自 DataSet 的绑定数据。当用户双击 ListView 中的一行时,它会打开一个详细信息窗口。
在我的 XAML 中,我使用一种样式在列表视图上创建双击处理程序:
在代码隐藏中,我有一个字典,它跟踪打开的详细信息窗口(一次可以打开多个),这样如果一个详细信息窗口已经打开,它就会被带到前面。我像这样处理双击:
我的问题是,使用上面的代码,详细信息窗口在主窗体后面打开。window.Owner = this
如果我设置了所有者信息(
正如我所期望的displayedCards[row].Activate()
那样工作,将该详细信息窗口带到所有其他详细信息窗口的前面,但它成为与上述相同问题的受害者 - 它没有出现在主窗口前面。
我想要完成的是让细节窗口与主窗口位于同一级别/层(/z 顺序?),以便两者可以相互叠加,并让细节窗口显示在主窗口的顶部打开时的主窗体。
编辑:如果它很重要,详细信息窗口没有WindowStyle
并AllowsTransparency
设置为 true。我也没有窗口标题,窗口也没有出现在任务栏中。当试图弄清楚这一点时,我尝试将 to 设置WindowStyle
为SingleBorderWindow
,并且出现了同样的问题,除了在绘制细节窗口时细节窗口的边框显示在主窗体的顶部,然后它被推到主窗体的后面形式。显示详细信息窗口后,我的双击处理程序本质上是否可以将主窗体拉到前面?
android - 在android中的视图下绘制线
我正在使用 onDispatchDraw(Canvas canvas) 方法在我的视图中绘制线条。当我调用 canvas.drawLine() 时,它总是在我所有的视图之上画线。有没有办法使用canvas.drawLine()在按钮下方但在我的布局中的另一个视图顶部绘制线条?
我尝试了以下方法,但它仍然在按钮上画线。
c++ - 无模式、无父的 wxDialog 仍然总是在 z 顺序的 wxFrame 窗口上方?
我的程序打开一个基于 wxFrame 的窗口和多个基于 wxDialog 的无模式和无父窗口。除了基于 wxDialog 的窗口坚持始终位于基于 wxFrame 的窗口之上之外,这一切都运行得很好。
我知道wxDIALOG_NO_PARENT
,我正在使用它。当我关闭 wxFrame 时,对话框保持打开状态,因此它们绝对没有 wxFrame 窗口作为父窗口。
(如果重要的话,我正在使用 C++、wxWidgets 2.8.something,并在 Ubuntu Linux 上运行它。我的程序还没有准备好在任何其他平台上编译,所以我还没有在其他平台上测试过。)
我希望所有窗口完全独立运行,因此用户可以使用 wxFrame 窗口以及 wxDialog 窗口。谁能指出我正确的方向?
c++ - MFC:使对话框始终位于其他对话框的一小部分之上
Google-ing 产生了关于如何使对话“始终在所有内容之上”的结果。不过,这不是我想要的。
假设我有大量的对话。在这堆对话中,考虑其中的 3 个——A、B 和 C。
我希望 C 始终位于 A 和 B 之上,而不是其余部分。换句话说,如果 C 处于活动状态,那么它应该在顶部,否则它将在另一个活动对话框的下方,除非它涉及 A 和 B。
顺便说一句,A 和 B 永远不能同时出现。
有了这个,我设法做到这一点的唯一方法是每次都销毁 C,然后用新的父级(A 或 B,取决于谁是可见的)重新创建它。我了解到,一旦创建了子对话框,就无法转移所有权,因此需要销毁。
我不能继续破坏它(说来话长)。
还有其他方法可以实现这一目标吗?谢谢!
ios - 子视图顶部的drawRect
我已经对其进行了子类化UIView
并添加了一个drawRect
方法。然后我使用这个自定义类定义一个视图并向它添加子视图。
问题是drawRect
似乎在子视图下绘制了东西(因此不可见)。
我希望drawRect
绘制的东西出现在我的 custom 的子视图上方UIView
。
这可能吗?
c# - 激活时 MDI 窗口 z 顺序异常
我有一个包含许多 MDI 子窗口的应用程序。通常,用户可以通过单击窗口的客户区和非客户区将一个 MDI 子窗口置于最前面。这似乎通常在鼠标按钮按下时发生。
现在,有时发生的情况是,当用户单击其客户区域上的 MDI 子窗体时,窗口不会按预期出现在前面。但是,单击表单的标题栏确实会将窗口带到前面,但仅在释放鼠标按钮时。这样做的效果是,用户可以将一个 MDI 子窗口拖到另一个后面,当释放鼠标按钮时,被拖到的窗口会回到前面。
效果是,如果我有几个 MDI 子窗口相互部分重叠,我就不能像往常一样把一个窗口放在前面。这似乎与焦点无关 - MDI 子窗口可以具有焦点,但仍位于另一个 MDI 子窗口之后。
此外 - 这似乎是随机发生的,在使用该应用程序一段时间后。我可以使用从用户发送的序列化程序状态(“保存”文件)重现该错误。
我的问题有两个部分:任何想法为什么会发生这种情况,以及如何调试我的程序以找出为什么会发生这种情况?
我怀疑窗口消息 WM_ACTIVATE(或类似的东西)没有得到正确处理,但这是一个 C# 应用程序,我没有对消息队列做任何不寻常的事情。
编辑:这是来自 spy++ 的一些附加信息。
以下是一切正常时 spy++ 的输出:
当我从运行应用程序获得输出并重现错误时,单击客户区域会产生以下结果:
查看消息编号,我可以立即看到有一堆消息没有发生,特别是WM_CHILDACTIVATE
.
解决方案
MdiParent
在显示窗口之前未设置其中一种形式的设置。
wpf - 绝对 z 顺序(跨多个 DataTemplates)
我有一个带有 Canvas ItemsPanel 的 ListBox,它显示 2 种不同类型的对象:NodeVM 和 LinkLineVM(使用 CompositeCollection)。每个 VM 对象都有一个 DataTemplate:
NodeVMs DataTemplate 有一个TextBlock
(A)
LinkLineVMs DataTemplate 有一个Line
(B) 和一个TextBlock
(C) 如何获得以下绝对 z 顺序:A(顶部)、C、B(底部)。
有人曾经说过一张照片值一千字。绿色矩形 == NodeVM,Line+小方框 == NetworkLinkVM。A 可以,因为链接 [-30] 通过其他链接但 B 是一个问题,因为链接 [-31] 框隐藏在链接 [-32] 下方
wpf - 从 DataTemplate 访问 ItemsPanel 属性
在带有 Canvas ItemsPanel 的 ListBox 的上下文中,我需要为多个 DataTemplates 中的每个控件访问 Cavas.ZIndex (列表显示几种对象类型)。使用一个是不够的
因为有几个数据模板,每个模板都有几个控件,我想控制每个控件的绝对 zindex。这甚至可能吗?
forms - 禁用表格上升到顶部
我想要一个表格,当我设置在 z 顺序的底部时,它会保留在那里。我试过:
当我将它与其他一些应用程序重叠时,它会根据需要保持在底部。但是,当我单击它时,它会上升到顶部。然后我尝试了:
以及来自该网站的各种其他开关... http://msdn.microsoft.com/en-us/library/ms633545.aspx
但它仍然上升到顶部。
c# - 跟进:在 WPF 中将窗口置于最前面
我正在尝试向我当前的项目添加一个按钮,按下该按钮会将窗口发送到后面 x 秒,允许用户在其他窗口中工作,然后再次自动回到前面。通过结合How to send a WPF window to back? 并在 WPF 中将一个窗口与 BackgroundWorker 一起放在前面,我能够完成 99% 的工作。按下按钮时,窗口返回到后面,并在指定的秒数后返回。问题是,如果我进入另一个窗口(Opera、Word 等),它永远不会从后面返回。我试着玩这些标志,但似乎无法让它发挥作用。这可能吗?如果是这样,怎么办?
谢谢!