将 Konva 转换控件设置到 canvas 的顶部
Set Konva transform controls to the top of the canvas
我正在尝试转换位于另一层后方且持有 png(模板)的图像。我想转换此图层下方的图像,但将其保留在原处,以便上方图层保留为模板。
是否可以在所有内容的顶部显示变换控件?
<Stage width={480} height={620} onMouseDown={this.handleStageMouseDown}>
{this.props.file ? (
<Layer>
<Uploaded file={this.props.file} />
<TransformerComponent
selectedShapeName={this.state.selectedShapeName}
/>
</Layer>
) : null}
<Layer listening={false}>
<Overlay />
</Layer>
</Stage>
您需要更改节点的结构。只需在所有其他形状之上显示变压器即可。如果您需要禁用覆盖层的事件,您可以使用 listening={false}
.
<Stage width={480} height={620} onMouseDown={this.handleStageMouseDown}>
<Layer>
{this.props.file &&
<Uploaded file={this.props.file} />
}
{/* use listening={false} for image in overlay */}
<Overlay/>
<TransformerComponent
selectedShapeName={this.state.selectedShapeName}
/>
</Stage>
如果有人正在寻找使用挂钩的解决方案,我发现如果您有 Transformer 的引用,则可以在选择形状时轻松地调用具有任意大数字的 zIndex()
方法,然后重绘它是安全的(没有这部分它可能会工作)
useEffect(() => {
if (isSelected) {
trRef.current.zIndex(10000);
trRef.current.getLayer().batchDraw();
}
}, [isSelected]);
这似乎在 canvas 上将 Transformer 呈现在所有其他内容之上,即使形状本身被遮盖了也是如此。
我正在尝试转换位于另一层后方且持有 png(模板)的图像。我想转换此图层下方的图像,但将其保留在原处,以便上方图层保留为模板。
是否可以在所有内容的顶部显示变换控件?
<Stage width={480} height={620} onMouseDown={this.handleStageMouseDown}>
{this.props.file ? (
<Layer>
<Uploaded file={this.props.file} />
<TransformerComponent
selectedShapeName={this.state.selectedShapeName}
/>
</Layer>
) : null}
<Layer listening={false}>
<Overlay />
</Layer>
</Stage>
您需要更改节点的结构。只需在所有其他形状之上显示变压器即可。如果您需要禁用覆盖层的事件,您可以使用 listening={false}
.
<Stage width={480} height={620} onMouseDown={this.handleStageMouseDown}>
<Layer>
{this.props.file &&
<Uploaded file={this.props.file} />
}
{/* use listening={false} for image in overlay */}
<Overlay/>
<TransformerComponent
selectedShapeName={this.state.selectedShapeName}
/>
</Stage>
如果有人正在寻找使用挂钩的解决方案,我发现如果您有 Transformer 的引用,则可以在选择形状时轻松地调用具有任意大数字的 zIndex()
方法,然后重绘它是安全的(没有这部分它可能会工作)
useEffect(() => {
if (isSelected) {
trRef.current.zIndex(10000);
trRef.current.getLayer().batchDraw();
}
}, [isSelected]);
这似乎在 canvas 上将 Transformer 呈现在所有其他内容之上,即使形状本身被遮盖了也是如此。