或窗口的"alwaysOnTop"属性的正确方法是什么?
如果我定义一个窗口 - 比如工具栏 - 并设置alwaysOnTop: true
,这不应该防止其他窗口遮挡它吗?
具有此属性的窗口是否需要向 Ext.WindowManager 注册?
长话短说,我正在使用桌面代码(见这里:https://examples.sencha.com/extjs/6....top/index.html(。您会注意到您可以将窗口移动到底部工具栏上 - 这不应该真正发生。单独向该任务栏代码添加alwaysOnTop: true
不起作用,但随后执行此操作会:
Ext.WindowManager.register(taskbar)
问题是win.toFront()
似乎不再适用于桌面上的其他窗口。这样,如果窗口 A 与窗口 B 重叠,则B.toFront()
将不起作用。
所以,问题是,对特定项目使用 alwaysOnTop 的正确方法是什么,但其他窗口的行为符合预期?
你检查过下面的链接吗?我认为我们必须应用其他类似的方法来实现输出。始终处于领先地位
好的,所以你仍然需要注册你想要的窗口'alwaysOnTop'但事实证明,窗口不会出现在前面的原因是,如果有任何窗口已注册为"alwaysOnTop",ZIndexManager 将不会提升窗口。
函数 bringToTop(( 包含以下代码:
if (!comp || zIndexStack.find('alwaysOnTop', true)){
return false;
}
这将防止有问题的窗口在堆栈中向上移动。删除始终在顶部比较似乎解决了我的问题。 当在组件上执行 setActiveCounter 时,这将触发调用以重新调用集合并将窗口放置在堆栈顶部设置了"alwaysOnTop"的窗口上,然后是有问题的窗口。
这样做的结果是,桌面底部的任务栏将始终保持在顶部,浮动窗口升级/降级将按预期运行。