自定义连线文字位置
线条文本位置和偏移控制
用于在线条上定位文本的综合控件,包括偏移、路径文本以及与各种布局的兼容性。
线条文本位置和偏移控制
功能概述
此示例提供了用于在线条上定位文本的综合控件,包括偏移调整、路径文本功能以及与不同线条形状和布局方向的兼容性。
核心特性实现
1. 文本偏移配置
使用 X 和 Y 偏移控制文本位置:
const graphOptions: RGOptions = {
defaultLineTextOffsetX: textOffsetX, // 水平偏移
defaultLineTextOffsetY: textOffsetY, // 垂直偏移
defaultLineTextOnPath: textOnPath,
defaultLineShape: lineShape
};
2. 动态偏移调整
提供滑块以进行实时偏移控制:
<div>
Line Text x Offset: {textOffsetX}
<input
type="range"
min="-100"
max="100"
value={textOffsetX}
onChange={(e) => { setTextOffsetX(Number(e.target.value)); }}
/>
</div>
3. 路径文本切换
启用文本跟随曲线:
<SimpleUISelect
data={[
{ value: 0, text: 'Normal Text' },
{ value: 1, text: 'Text On Path' }
]}
currentValue={textOnPath ? 1 : 0}
onChange={(newValue: number) => { setTextOnPath(newValue === 1); }}
/>
4. 布局方向控制
测试不同树形布局方向的文本定位:
const updateMyOptions = () => {
if (layoutFrom === 'left' || layoutFrom === 'right') {
graphInstance.updateOptions({
layout: {
from: layoutFrom,
treeNodeGapH: 150,
treeNodeGapV: 30
}
});
} else {
graphInstance.updateOptions({
layout: {
from: layoutFrom,
treeNodeGapH: 30,
treeNodeGapV: 150
}
});
}
};
5. 连接点适配
根据线条形状自动调整连接点:
defaultJunctionPoint: lineShape === RGLineShape.StandardStraight
? RGJunctionPoint.border
: ((layoutFrom === 'left' || layoutFrom === 'right')
? RGJunctionPoint.lr
: RGJunctionPoint.tb)
创意使用场景
- 注释图表:向连接添加详细标签
- 技术文档:创建精确的技术图纸
- 教育材料:为学习材料提供清晰的标签
- 数据可视化:在关系线上显示指标
- 流程映射:使用清晰的定位标记流程步骤
- 多语言支持:为不同语言调整文本位置