You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS项目中Kendo Diagram背景布局网格设置方法咨询

在AngularJS项目的Kendo Diagram中添加背景布局网格

可以实现这种背景网格效果,下面给你两种实用的实现方式:

一、绘制静态背景网格

利用Kendo Diagram的render事件,手动在SVG画布上绘制网格线,步骤如下:

  1. 在AngularJS控制器中配置Diagram选项,添加render事件处理逻辑:
angular.module('app', ['kendo.directives'])
.controller('DiagramCtrl', function($scope) {
  $scope.diagramOptions = {
    // 你的数据源、布局等基础配置
    dataSource: [],
    layout: { type: "tree" },
    render: function(e) {
      var diagram = e.sender;
      var svg = diagram.svg();
      
      // 清除已存在的网格,避免重复绘制
      svg.find('.layout-grid').remove();
      
      // 定义网格参数,可按需调整
      var gridSize = 20; // 网格间距
      var bounds = diagram.bounds();
      var width = bounds.width;
      var height = bounds.height;
      
      // 创建网格容器组
      var gridGroup = svg.group().addClass('layout-grid');
      
      // 绘制水平线
      for (var y = 0; y <= height; y += gridSize) {
        gridGroup.path(`M 0 ${y} L ${width} ${y}`)
          .stroke({ color: '#eee', width: 1 });
      }
      
      // 绘制垂直线
      for (var x = 0; x <= width; x += gridSize) {
        gridGroup.path(`M ${x} 0 L ${x} ${height}`)
          .stroke({ color: '#eee', width: 1 });
      }
      
      // 将网格置于画布最底层,不遮挡节点
      svg.children().first().before(gridGroup);
    }
  };
});
  1. 对应的HTML结构:
<div ng-app="app" ng-controller="DiagramCtrl">
  <div kendo-diagram k-options="diagramOptions" style="width: 800px; height: 600px;"></div>
</div>

二、添加网格对齐吸附功能(可选)

如果需要让节点拖动时自动对齐到网格,可以再添加drag事件:

// 在diagramOptions中追加drag事件配置
drag: function(e) {
  var gridSize = 20;
  // 判断拖动的是节点形状
  if (e.item instanceof kendo.dataviz.diagram.Shape) {
    var pos = e.item.position();
    // 计算对齐到网格后的坐标
    var alignedX = Math.round(pos.x / gridSize) * gridSize;
    var alignedY = Math.round(pos.y / gridSize) * gridSize;
    e.item.position(alignedX, alignedY);
  }
}

注意事项

  • 可以通过修改gridSize、stroke.color等参数调整网格的密度和样式;
  • 如果Diagram支持缩放,需要在zoom事件中重新绘制网格,适配缩放比例;
  • 网格会在每次Diagram重绘时重新生成,确保布局变化后网格能同步更新。

内容的提问来源于stack exchange,提问作者Wladislaw Kusnezow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:47:29