Extjs 4.2,当窗口最大化时,我如何忽略maxHeight
配置?
我想制作全屏窗口。
这是我在jsfiddle中的演示代码。
Ext.onReady(function() {
Ext.create('Ext.window.Window',{
title: 'Hello',
maximizable: true,
width: 400,
height: 300,
maxHeight: 350
}).show();
});
答案 0 :(得分:1)
准备好迎接重大黑客攻击?
function realMaximize(){
if(this.maxInternal){
return;
}
if(this.maximized){
this.oldMaxHeight = this.maxHeight;
this.maxHeight = undefined;
this.maxInternal = true;
this.restore();
this.maximize();
this.maxInternal = false;
}else{
this.maxHeight = this.oldMaxHeight;
}
}
Ext.onReady(function() {
var w = Ext.create('Ext.window.Window',{
title: 'Hello',
maximizable: true,
width: 400,
height: 300,
maxHeight: 350
});
w.addListener('maximize',realMaximize);
w.show();
});
啊!可怕。它有什么作用?当它检测到最大化时,它会存储当前的最大高度并将其删除。然后它切换最大化,以便UI更新以尊重这个新的最大值(也许有更好的方法?)。最后,它必须设置并检查一个标志,否则它将进入一个无限循环(maximize
再次调用该函数)。
回到窗口并不是那么困难;记住的大小必须正常,因此我们不需要递归调用该函数。