我有这个小提琴:http://jsfiddle.net/y9mhE/3/

现在,我要使 Canvas 控件适合父div。
由于它继承了enyo.control,因此我应该能够使用'fit'属性,但这似乎不起作用。

这是一个错误,还是我错过了一些东西

(http://enyojs.com/api/#enyo.Canvas)

canvas控件具有width和height属性(默认为500),也许这会覆盖fit属性?

我必须在此处包含代码,因此:

enyo.kind({
    name: "App",
    kind: enyo.Control,
    fit: true,
    components: [
    {
        kind:enyo.Canvas,
        name:"canvas",
        fit:true

    }
    ]
});​

最佳答案

fit属性不属于enyo.Control类型,只能在fittable内部使用。因此,将您的应用种类更改为“FittableColumns”或“FittableRows”(或设置“FittableColumnsLayout”或“FittableRowsLayout”的layoutKind),如下所示:

enyo.kind({
    name: 'App',
    kind: 'FittableColumns',
    /* or:
    kind: enyo.Control,
    layoutKind: 'FittableColumnsLayout', */
    components: [
        {
            name: 'canvas',
            kind: enyo.Canvas,
            fit: true // works now because of parents fittable layout
        }
    ]
});

我更新了您的小提琴:http://jsfiddle.net/y9mhE/7/

09-25 16:46