ExtJS提供了一些关于Window是否配置为的配置 maximized,minimizable等。它还为maximize和minimize提供了一个窗口的功能。
无法找到获取现有窗口状态的正确方法。我需要的是类似下面的功能:
var myWin = Ext.create('Ext.window.Window', { ... });
...
myWin.isMinimized(); // is current window minimized?
myWin.isMaximized(); // is current window maximized?
可以从窗口实例中检索当前窗口的状态吗?
答案 0 :(得分:3)
对于maximize()
,您可以从对象中获取布尔属性maximized
:
if (myWin.maximized) { ... }
然而对于minimize()
,ExtJS不提供任何功能,并且需要单独实现。因此,框中不支持任何minimized
属性。
答案 1 :(得分:1)
@VisioN的答案已经完成,但我想用toggleCollapse()
向您展示隐藏窗口的代码段:
Ext.create('Ext.Window',{
height: 100,
width: 100,
minimizable: true,
listeners: {
minimize: function(){
var win = this;
win.toggleCollapse();
if (!win.getCollapsed()) {
win.center();
} else {
win.alignTo(document.body, 'bl-bl');
}
}
}
}).show();
答案 2 :(得分:1)
对于任何寻找而不是使用minimizable
配置的人来说,使用tools
的解决方案。这是完整的例子..
var isMinimized = false; //if you want to check for minimized elsewhere..
var winWidth; //to restore to actual width.
Ext.create('Ext.window.Window', {
title: 'Hello',
closable : false,
width : 300, height : 400,
tools: [
{
type: 'restore',
hidden : true,
handler: function( evt,toolEl,owner,tool ) {
var window = owner.up( 'window' );
window.expand('',false);
window.setWidth(winWidth);
window.center();
isMinimized = false;
this.hide();
this.nextSibling().show();
}
},{
type: 'minimize',
handler: function( evt,toolEl,owner,tool ){
var window = owner.up( 'window' );
window.collapse();
winWidth = window.getWidth();
window.setWidth( 150 );
window.alignTo( Ext.getBody(), 'bl-bl');
this.hide();
this.previousSibling().show();
isMinimized = true;
}
}
]
}).show();