Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 地图面板上的弹出窗口很难手动调整大小_Extjs_Popup_Geoext - Fatal编程技术网

Extjs 地图面板上的弹出窗口很难手动调整大小

Extjs 地图面板上的弹出窗口很难手动调整大小,extjs,popup,geoext,Extjs,Popup,Geoext,我有一个“border”类型的布局,在“center”面板中有一个地图面板。 我想用下面的代码显示一个无模式弹出窗口。 它工作正常,我可以拖动和调整大小 但在调整大小时,如果我用鼠标拖动弹出区域外(以及MapPanel区域内),则我会失去对该操作的控制(表示弹出边界的虚线消失)。但如果我坚持将地图面板区域外的移动拖到“西”或“南”面板上,那么我将再次控制此操作(虚线显示)。我认为MapPanel在其上悬停时将获得鼠标控制。这种行为让调整弹出窗口的大小仍然是可能的,但有点乏味 如果我在显示弹出窗口

我有一个“border”类型的布局,在“center”面板中有一个地图面板。 我想用下面的代码显示一个无模式弹出窗口。 它工作正常,我可以拖动和调整大小

但在调整大小时,如果我用鼠标拖动弹出区域外(以及MapPanel区域内),则我会失去对该操作的控制(表示弹出边界的虚线消失)。但如果我坚持将地图面板区域外的移动拖到“西”或“南”面板上,那么我将再次控制此操作(虚线显示)。我认为MapPanel在其上悬停时将获得鼠标控制。这种行为让调整弹出窗口的大小仍然是可能的,但有点乏味

如果我在显示弹出窗口时禁用MapPanel,调整大小效果很好,但这不是我想要的。我想显示一个无模式弹出窗口

有什么解决办法吗

var mapPanel = Ext.ComponentQuery.query('viewMapPanel')[0];
Ext.create('GeoExt.window.Popup', {
    map: mapPanel.map,
    title: 'test',

    frame: true,
    border: false,
    resizable: true,        
    draggable: true,
    closable: true,

  height: 400,
  width: 200,

  shadow: true,
  shadowOffset: 20,

  //modal:true


}).show();

从未使用过GeoExt。但我使用了:与xtype一起使用:“gmappanel”与success。您只需使用一个常规的Ext.window并进行布局:'fit',items:{map},它就不会有这些问题。 我想你也可以做同样的事情,而不是使用GeoExt,只要使用Ext.create('Ext.window.window'),{然后让它弹出一个常规窗口,你可以选择布局,然后将地图面板放入项目中

 var map = Ext.create('Ext.window.Window', {
        title: 'I love Maps',
        collapsible: true,
        animCollapse: true,
        maximizable: true,
        width: 950,
        height: 600,
        minWidth: 200,
        minHeight: 200,
        layout: 'fit',
        items: [{mapPanel}],
        dockedItems: [{
            xtype: 'toolbar',
            dock: 'bottom',
            ui: 'footer',
            layout: {
                pack: 'center'
            },
            items: [{
                minWidth: 80,
                text: 'Close',
                xtype: 'button'

            }]
        }]
    });
    map.show();

我假设您将自定义OpenLayers映射交给GeoExt映射面板,而不是使用默认值。设置为true,以允许冒泡事件

var map = new OpenLayers.Map({
    fallThrough: true
});

谢谢您的回答。不,我刚刚尝试了您感兴趣的示例,但我仍然有问题。请注意,MapPanel位于弹出窗口后面,而不是在弹出窗口内部:这就是问题所在。您可以在GeoExt.window.popup中看到此背景MapPanel参考,因为该弹出类需要此参考。问题在于在MapPanel区域behi上拖动弹出角nd他:地图面板将“偷”鼠标移动事件,并且只有当鼠标离开他的区域时才会返回。