2013-03-04 76 views
4

ExtJS的提供了許多CONFIGS的作爲一個窗口是否被配置爲 maximizedminimizable等,還提供了功能maximizeminimize的窗口。ExtJS的:檢查窗口狀態(被最小化,最大化,等等)

但找不到取得現有窗口狀態的正確方法是。我需要的是類似於下面的函數:

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

當前窗口的狀態可以從窗口實例中檢索嗎?

回答

3

對於maximize()有一個布爾屬性maximized,你可以從一個對象回暖:

if (myWin.maximized) { ... } 

然而,對於minimize() ExtJS的不提供任何功能,預計個人實施。因此,從框中不支持任何minimized屬性。

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(); 
+0

這是有用的,+ 1ed – 2013-03-04 11:51:16

+0

什麼是'toggleCollapse()'?它給我錯誤。如果它是用戶定義的,那麼PLZ會爲它提供代碼 – 2013-09-07 05:16:27

+0

您正在運行哪個版本的ExtJs?它是可用的,因爲:2.3.0 – A1rPun 2013-09-09 11:18:05

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(); 
+0

這是一個非常好的解決方案。如果在最小化不同窗口時不想重疊,會發生什麼情況? – Aebsubis 2014-03-28 10:22:15

相關問題