少し遅れました...しかし、これはあなたが望んでいるものだと思います。たまたま、パネル内の上部の画像ではなく、パネルの背後のスケーリングされた背景として画像を使用しましたが、理論は同じです:
//here is your view file
Ext.define('This_Is_A_Panel_On_Top_Of_A_Background_Container.view.MyViewport', {
extend: 'Ext.container.Viewport', //my root view port
layout: {type: 'fit'},
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [{
xtype: 'container', //my background image
html: '<img id="imgEl" src="'+Ext.BLANK_IMAGE_URL+'">',
layout: {type: 'border'},
items: [{
xtype: 'panel', //my panel on top of background
region: 'center',
bodyCls: 'transparent',
title: 'My Panel'
}]
}]
});
me.callParent(arguments);
}
});
画像コンポーネントは使用せず、コンテナーを使用したことに注意してください。html: <img ...
そしてbodyCls: transparent...
トリックをしました。ハンドラーで画像を動的に変更できます。このようなもの:
//then say, in afterRender event, in your controller file
var imgEl = Ext.get('imgEl');
Ext.fly(imgEl).setStyle({
backgroundImage: 'wallpaper.jpg',
width: '100%',
height: '100%'
}).show();