2012-05-03 14 views
8

Muszę zaimplementować okno, które zawsze może być na wierzchu. Jak mogę to zrobić? Wszystkie moje prób z managerem okien dają mi żadnych wyników :(Okno ExtJS 4 "zawsze na wierzchu"

+0

Wystarczy popatrzeć na to: http://stackoverflow.com/questions/6053847/how-to-make-a-full-modal-window-in-ext-4 – Dave

+1

Spójrz na 'Ext.ZIndexManager.bringToFront()' metoda –

+0

Sprawdź to. http://docs.sencha.com/extjs/5.1.0/api/Ext.window.Window.html#cfg-alwaysOnTop –

Odpowiedz

7

W Ext.window.Window, nie ma właściwość o nazwie „modalne”. Ustawić go na true

przeciwnym razie użyj managerem okien zarządzać okna: w tym przypadku trzeba wykonać następujące czynności:

  1. rejestr okna do managerem okien (Ext.WindowManager.register (Winid))
  2. użycie BringToFront sposób ustawić okno na górze (Ext.WindowManager.bringToFront (Winid))
  3. wreszcie sprawdzić element na szczycie z getActive metodą (Ext.WindowManager.getActive ())

Np

Ext.create ('Ext.window.Window', { 
    title: 'Your window' , 
    width: 300 , 
    height: 300 , 
    html: 'ciao ciao' , 
    modal: true 
}).show(); 

Lub:

var win1 = Ext.create ('Ext.window.Window', { 
    title: 'Your window' , 
    id: 'firstWin' , 
    width: 300 , 
    height: 300 , 
    html: 'ciao ciao' , 
}); 
win1.showAt (50, 50); 

var win2 = Ext.create ('Ext.window.Window', { 
    title: 'Your window' , 
    id: 'secondWin' , 
    width: 300 , 
    height: 300 , 
    html: 'I love pizza' , 
}); 
win2.showAt (60, 60); 

// Register your floating objects (window in this case) to the WindowManager 
Ext.WindowManager.register (win1); 
Ext.WindowManager.register (win2); 

// Bring 'firstWin' on top 
Ext.WindowManager.bringToFront ('firstWin'); 

// Then, check the zIndexStack 
alert (Ext.WindowManager.getActive().getId()); // this is firstWin, the window with the highest zIndex 

Mam nadzieję, że ci to pomoże.

Cyaz

+0

To miło, a ** głównym pytaniem ** jest: ** JAK ** wykryć to nowe okno wyświetla się w moim oknie? –

+0

Ah, teraz mam to;) Cóż, najpierw musisz zarejestrować swoje okna do WindowManager. Następnie sprawdź plik zIndexStack menedżera WindowManager;) Pierwszym elementem stosu jest najwyższy zIndex. Ext.WindowManager.zIndexStack [0] jest twoim rozwiązaniem, ale myślę, że to samo powinno być zrobione przez Ext.WindowManager.getActive(), ale w moich eksperymentach to nie działa ... Teraz spójrz na moją pierwszą odpowiedź z całe rozwiązanie: to jest po prostu edytowane;) – Wilk

+1

Ok, po prostu zrozumiałem, jak uzyskać okno z najwyższym zIndex poprzez Ext.WindowManager.getActive(): zamiast używać metody toFront() każdego okna, musisz użyć Ext. WindowManager.bringToFront (id/object), a następnie sprawdź go za pomocą Ext.WindowManager.getActive();) Sprawdź edytowane rozwiązanie. Cześć! – Wilk

Powiązane problemy