我正在使用 dojox.drawing.Drawing 创建一个简单的图表工具。我创建了一个自定义工具,通过扩展 dojox.drawing.tools.Rect 来绘制圆角矩形,如下所示 -
dojo.provide("dojox.drawing.tools.custom.RoundedRect");
dojo.require("dojox.drawing.tools.Rect");
dojox.drawing.tools.custom.RoundedRect = dojox.drawing.util.oo.declare(
dojox.drawing.tools.Rect,
function(options){
},
{
customType:"roundedrect"
}
);
dojox.drawing.tools.custom.RoundedRect.setup = {
name:"dojox.drawing.tools.custom.RoundedRect",
tooltip:"Rounded Rect",
iconClass:"iconRounded"
};
dojox.drawing.register(dojox.drawing.tools.custom.RoundedRect.setup, "tool");
我能够将我的工具添加到工具栏并使用它在画布上绘制矩形。现在,我想自定义我的自定义工具创建的矩形,使其具有圆角,但我无法弄清楚如何。我检查了 dojox.drawing.tools.Rect 类的来源以及它的父 dojox.drawing.stencil.Rect 类,我可以看到在 dojox.drawing.stencil.Rect 中创建的实际矩形如下 -
_create: function(/*String*/shp, /*StencilData*/d, /*Object*/sty){
// summary:
// Creates a dojox.gfx.shape based on passed arguments.
// Can be called many times by implementation to create
// multiple shapes in one stencil.
//
//console.log("render rect", d)
//console.log("rect sty:", sty)
this.remove(this[shp]);
this[shp] = this.container.createRect(d)
.setStroke(sty)
.setFill(sty.fill);
this._setNodeAtts(this[shp]);
}
在 dojox.gfx 中,可以通过设置 r 属性将圆角添加到矩形。在这种情况下,有人可以回答我的以下问题吗?
- dojox.drawing 中自定义矩形外观为圆角的机制是什么?
- 在上面的代码片段中,StencilData 被传递给 createRect 调用。自定义此数据的机制是什么?可以在此数据中设置控制圆角的矩形的 r 属性吗?