drawChildren 绘制所有子元素
drawChildren
类型: MethodDeclaration
所属类: WindowElement
定义位置: ui.ts
描述
绘制所有子元素
返回值
类型: void
源代码
位置: 第 5866 行
protected drawChildren(): void {
    if (this.overflow === 'visible') {
      return super.drawChildren()
    }
    switch (this.layout) {
      case 'normal':
        return super.drawChildren()
      case 'horizontal-grid': {
        const unitWidth = this.gridWidth + this.gridGapX
        const unitHeight = this.gridHeight + this.gridGapY
        if (unitWidth * unitHeight === 0) {
          return super.drawChildren()
        }
        const children = this.children
        const scrollTop = this.scrollY - this.paddingY
        const scrollBottom = scrollTop + this.height
        const startRow = Math.floor(scrollTop / unitHeight)
        const endRow = Math.ceil(scrollBottom / unitHeight)
        const start = Math.max(startRow * this.columns, 0)
        const end = Math.min(endRow * this.columns, children.length)
        for (let i = start; i < end; i++) {
          children[i].draw()
        }
        break
      }
      case 'vertical-grid': {
        const unitWidth = this.gridWidth + this.gridGapX
        const unitHeight = this.gridHeight + this.gridGapY
        if (unitWidth * unitHeight === 0) {
          return super.drawChildren()
        }
        const children = this.children
        const scrollLeft = this.scrollX - this.paddingX
        const scrollRight = scrollLeft + this.width
        const startCol = Math.floor(scrollLeft / unitWidth)
        const endCol = Math.ceil(scrollRight / unitWidth)
        const start = Math.max(startCol * this.rows, 0)
        const end = Math.min(endCol * this.rows, children.length)
        for (let i = start; i < end; i++) {
          children[i].draw()
        }
        break
      }
    }
  }
文档生成时间:2025/7/21 20:53:39