4

ExtJS 提供了许多关于 Window 是否配置为 最大化最小化等的配置。它还提供了最大化最小化窗口的功能。

但是找不到获取现有窗口状态的正确方法是什么。我需要的是类似于以下的功能:

var myWin = Ext.create('Ext.window.Window', { ... });
...
myWin.isMinimized(); // is current window minimized?
myWin.isMaximized(); // is current window maximized?

可以从窗口实例中检索当前窗口的状态吗?

4

3 回答 3

3

因为maximize()有一个布尔属性maximized,您可以从对象中获取它:

if (myWin.maximized) { ... }

但是对于minimize()ExtJS 不提供任何功能并期望单独实现。minimized因此,该框不支持任何属性。

于 2013-03-04T10:38:52.693 回答
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();
于 2013-09-07T05:41:41.567 回答
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();
于 2013-03-04T11:22:42.560 回答