1

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

但是在调整大小时,如果我用鼠标在弹出区域外(和 MapPanel 区域内)拖动,那么我会失去对这个动作的控制(代表弹出边框的虚线消失)。但是,如果我坚持将 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();
4

2 回答 2

1

从未使用过 GeoExt。但我已经成功使用了:http ://code.betancourt.us/ext-map/ 和 xtype: 'gmpanel' 。你可以只使用一个常规的 Ext.window 并做 layout: 'fit', items: {map} 并且它没有这些问题。我认为您可能可以做同样的事情,而不是使用 GeoExt,只需使用 Ext.create('Ext.window.Window', { 并让它弹出一个常规窗口,您可以为其选择布局,然后将 mapPanel 放入项目中。

 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();
于 2014-07-25T18:03:31.453 回答
0

我假设您将自定义 OpenLayers 地图移交给 GeoExt 地图面板,而不是使用默认地图。将该地图的属性“fallThrough”设置为 true,以允许冒泡事件。

var map = new OpenLayers.Map({
    fallThrough: true
});
于 2014-10-01T13:33:24.060 回答