我正在使用dojox.drawing.Drawing创建一个简单的图表工具。我创建了一个自定义工具通过扩展dojox.drawing.tools.Rect绘制圆角矩形,如下图所示 -dojox.drawing.Drawing - 用圆角创建矩形的自定义工具
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");
我能到我的工具添加到工具栏,并用它在画布上绘制一个rectagle。现在,我想自定义由我的自定义工具创建的矩形以具有圆角,但我无法弄清楚如何。 我检查了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属性吗?