组件:画板

画板组件用于进行2D绘图操作,支持画矩形、填充矩形、画圆、填充圆、画曲线、填充曲线、填充文本、画文本、画直线、画多边形、填充多边形、画图像、清空、保存状态、恢复状态、旋转、平移、缩放等操作,常用于图形绘制、图表展示、Canvas 绘图等场景,坐标原点为左上角。

典型使用场景:

  • 图表绘制(柱状图、折线图、饼图、散点图)
  • 图形设计(几何图形、流程图、架构图、示意图)
  • 游戏开发(游戏界面、动画效果、交互绘图)
  • 数据可视化(数据图表、统计图表、信息图表)
  • 创意绘图(涂鸦板、手绘板、绘画工具)

📌 继承自视图的成员速查

本组件继承自 视图 类,可直接使用以下属性和方法:

属性: ID、左边、顶边、右边、底边、宽度、高度、背景、背景颜色、背景图像、文本、文本颜色、字体、字体大小、字体粗细、行高、边框、边框圆角、边框宽度、光标样式、显示模式、透明度、外边距、外边距底、外边距左、外边距右、外边距顶、最大高度、最大宽度、最小高度、最小宽度、内边距、内边距底、内边距左、内边距右、内边距顶、定位、CLASS、InnerHTML、OuterHTML、内容水平对齐方式、首行缩进、可视、显示层级、内联样式、禁用

方法: 追加内联样式(样式文本)、置内联样式(名称,值)、取内联样式值(名称)、取Style对象()、添加事件(事件名称, 回调函数)、删除事件(事件名称, 回调函数)、获取焦点()、清除焦点()、添加样式类(类名称)、移除样式类(类名称)、取样式类列表()、取样式类()、执行单击()、取属性值(属性名)、取属性节点(属性名)、取布局参数()、取渲染宽度()、取渲染高度()、取渲染顶边()、取渲染左边()、左侧对齐到(目标组件,偏移量)、右侧对齐到(目标组件,偏移量)、顶边对齐到(目标组件,偏移量)、底边对齐到(目标组件,偏移量)、右侧对齐到左(目标组件, 偏移量)、左侧对齐到右(目标组件, 偏移量)、底边对齐到顶(目标组件, 偏移量)、顶边对齐到底(目标组件, 偏移量)、有指定属性(属性名)、有属性()、内容可编辑()、包含CSS类(类名)、取命名空间()、取下个节点()、取下个元素()、取节点名称()、取节点类型()、取父节点()、取父元素()、取上个节点()、取上个元素()、销毁()、删除属性(属性名)、删除属性节点(属性名)、置属性值(属性名, 属性值)、置属性节点(属性节点)、取标签名()、移动(左边 顶边, 宽度, 高度)、取原生对象()、置被单击回调(回调函数)、置被双击回调(回调函数)、置鼠标被进入回调(回调函数)、置鼠标被移出回调(回调函数)、置鼠标被移动回调(回调函数)、置鼠标被按下回调(回调函数)、置鼠标被抬起回调(回调函数)、置鼠标滚轮被滚动回调(回调函数)、置键盘被按下回调(回调函数)、置按键被抬起回调(回调函数)、置按键被压下回调(回调函数)、置被失去焦点回调(回调函数)、置被获得焦点回调(回调函数)

事件: 被单击(源对象,事件源)、被双击(源对象,事件源)、鼠标被进入(源对象,事件源)、鼠标被移出(源对象,事件源)、鼠标被移动(源对象,事件源)、鼠标被按下(源对象,事件源)、鼠标被抬起(源对象,事件源)、鼠标滚轮被滚动(源对象,事件源)、键盘被按下(源对象,事件源)、按键被抬起(源对象,事件源)、按键被压下(源对象,事件源)、被失去焦点(源对象,事件源)、被获得焦点(源对象,事件源)

💡 完整成员列表及详细说明请参考:视图

常用操作速查

操作属性/方法示例
画矩形画矩形(左, 上, 右, 下)画板1.画矩形(10, 10, 100, 100)
填充矩形填充矩形(左, 上, 右, 下)画板1.填充矩形(10, 10, 100, 100)
画圆画圆(圆心X, 圆心Y, 半径)画板1.画圆(50, 50, 30)
填充圆填充圆(圆心X, 圆心Y, 半径)画板1.填充圆(50, 50, 30)
画直线画直线(起点X, 起点Y, 终点X, 终点Y)画板1.画直线(10, 10, 100, 100)
画文本画文本(文本, X, Y)画板1.画文本("Hello", 10, 10)
填充文本填充文本(文本, X, Y)画板1.填充文本("Hello", 10, 10)
清空画板清空()画板1.清空()
保存状态保存状态()画板1.保存状态()
恢复状态恢复状态()画板1.恢复状态()
设置绘图样式设置线条样式(宽度, 颜色, 线条样式)画板1.设置线条样式(2, "#1890ff", "实线")

样式美化参考

绘图样式变体:

  • 实线样式:线条样式 = "实线"线条宽度 = 2线条颜色 = "#1890ff"
  • 虚线样式:线条样式 = "虚线"线条宽度 = 2线条颜色 = "#1890ff"虚线模式 = "5,5"
  • 点线样式:线条样式 = "点线"线条宽度 = 2线条颜色 = "#1890ff"虚线模式 = "2,2"
  • 双线样式:线条样式 = "双线"线条宽度 = 4线条颜色 = "#1890ff"内线颜色 = "#ffffff"

填充样式:

  • 纯色填充:填充颜色 = "#1890ff",`填充透明度 = 1
  • 渐变填充:填充类型 = "线性渐变"渐变颜色 = ["#1890ff", "#096dd9"]渐变方向 = "水平"
  • 图案填充:填充类型 = "图案"图案图像 = "static/pattern.png"图案重复 = "重复"
  • 透明填充:填充颜色 = "透明",`填充透明度 = 0

字体样式:

  • 默认字体:字体 = "Arial"字体大小 = 16字体颜色 = "#333333"
  • 粗体字体:字体 = "Arial"字体大小 = 16字体粗细 = "粗体"字体颜色 = "#333333"
  • 斜体字体:字体 = "Arial"字体大小 = 16字体样式 = "斜体"字体颜色 = "#333333"
  • 中文字体:字体 = "微软雅黑"字体大小 = 16字体颜色 = "#333333"

画布样式:

  • 白色背景:背景颜色 = "#ffffff"边框 = "1px solid #d9d9d9"边框圆角 = "4px"
  • 灰色背景:背景颜色 = "#f5f5f5"边框 = "1px solid #e8e8e8"边框圆角 = "4px"
  • 网格背景:背景图像 = "static/grid.png"背景重复 = "重复"边框 = "1px solid #e8e8e8"边框圆角 = "4px"

状态样式:

  • 正常状态:边框 = "1px solid #d9d9d9"背景颜色 = "#ffffff"光标样式 = "crosshair"
  • 悬停状态:边框 = "1px solid #1890ff"背景颜色 = "#f0f7ff"光标样式 = "crosshair"
  • 绘制状态:边框 = "2px solid #1890ff"背景颜色 = "#ffffff"光标样式 = "crosshair"
  • 错误状态:边框 = "1px solid #ff4d4f"背景颜色 = "#fff2f0"光标样式 = "not-allowed"

尺寸样式:

  • 小尺寸画板:宽度 = 300高度 = 200边框圆角 = "4px"边框 = "1px solid #d9d9d9"
  • 中尺寸画板:宽度 = 600高度 = 400边框圆角 = "8px"边框 = "1px solid #e8e8e8"
  • 大尺寸画板:宽度 = 800高度 = 600边框圆角 = "12px"边框 = "1px solid #e8e8e8"
  • 全屏画板:宽度 = "100%"高度 = "100%"边框 = "none"边框圆角 = "0"

响应式样式:

  • 移动端适配:宽度 = "100%"高度 = 300最大宽度 = 400边框圆角 = "4px"
  • 平板端适配:宽度 = "100%"高度 = 400最大宽度 = 600边框圆角 = "8px"
  • 桌面端适配:宽度 = 800高度 = 600边框圆角 = "12px"边框 = "1px solid #e8e8e8"

示例代码

' 示例:完整的画板使用演示
' 1. 创建画板
变量 画板1 = 创建 画板()
' 2. 设置属性
画板1.左边 = 100
画板1.顶边 = 100
画板1.宽度 = 400
画板1.高度 = 300
画板1.置画布尺寸(400, 300)
画板1.填充样式 = "#1890ff"
画板1.画笔样式 = "#333333"
画板1.线宽 = 2
' 3. 绘制图形
画板1.填充矩形(20, 20, 120, 80)
画板1.画矩形(160, 20, 120, 80)
画板1.填充圆(80, 200, 40)
画板1.画直线(160, 160, 360, 260)
画板1.字体 = "20px Arial"
画板1.填充文本("Hello VcnStudio", 200, 200)
' 4. 添加到父容器
添加组件(画板1)

属性:填充样式

  • 类型: 文本型
  • 说明: 设置或获取绘图时的填充颜色或样式,如颜色值、渐变等,用于填充图形内部。

属性:画笔样式

  • 类型: 文本型
  • 说明: 设置或获取绘图时的笔触颜色或样式,如颜色值、渐变等,用于绘制图形的边框。

属性:字体

  • 类型: 文本型
  • 说明: 设置或获取绘图时文本的字体样式,如字体大小、字体名称等,1. 设置字体大小和名称:画板对象1.字体 = "20px Arial";2. 设置斜体和粗体:画板对象1.字体 = "italic bold 16px Times New Roman"。

属性:线宽

  • 类型: 数值型
  • 说明: 设置绘图时线条的宽度,单位为像素。

属性:线端盖样式

  • 类型: 文本型
  • 说明: 设置线条末端的样式,可选值:butt(默认)、round、square。

属性:线连接样式

  • 类型: 文本型
  • 说明: 设置两条线段连接处的样式,可选值:miter(默认)、round、bevel。

函数:置画布尺寸(宽度, 高度)

设置画板中可绘制内容的区域尺寸,一般建议设置为与画板宽高一致。

函数:画矩形(X, Y, 宽, 高)

在画布上指定位置 (x, y) 绘制一个指定宽高的矩形(框),边框颜色由画笔样式决定。

' 绘制一个矩形,在坐标 (10, 10) 绘制一个宽为 100,高为 50 的矩形。
画板1.画矩形(10, 10, 100, 50)

函数:填充矩形(X, Y, 宽, 高)

填充绘制画布中指定位置和宽高的矩形,相当于是绘制一个含有底色的矩形区域。

' 填充一个矩形,在坐标 (10, 10) 绘制一个宽为 100,高为 50 的矩形。
画板1.填充矩形(10, 10, 100, 50)

函数:画圆(X, Y, 半径)

在画布上指定位置 (X, Y) 绘制一个圆形。

' 绘制一个圆形,在坐标 (50, 50) 绘制一个半径为 30 的圆
画板1.画圆(50, 50, 30)

函数:填充圆(X, Y, 半径)

在画布上指定位置 (X, Y) 绘制一个填充有背景底色的圆,填充颜色由填充样式决定。

' 填充一个圆形,在坐标 (50, 50) 绘制一个半径为 30 的圆
画板1.填充圆(50, 50, 30)

函数:画曲线(X, Y, 半径, 开始角度, 结束角度)

在画布上指定位置 (X, Y) 绘制一个圆形或圆弧的边框,边框颜色由画笔样式决定,开始角度与结束角度单位为弧度制,0为0度,90度为0.5PI,180度为1PI,270度为1.5PI。

' 绘制一个扇形,在坐标 (50, 50) 绘制一个半径为 30 的扇形,起始角度为 0,结束角度为 0.5PI。
画板1.画曲线(50, 50, 30, 0, 0.5 * 3.14)

函数:填充曲线(X, Y, 半径, 开始角度, 结束角度)

在画布上指定位置 (X, Y) 填充一个圆形或圆弧,填充颜色由填充样式决定,开始角度与结束角度单位为弧度制,0为0度,90度为0.5PI,180度为1PI,270度为1.5PI。

' 填充一个扇形,在坐标 (50, 50) 填充一个半径为 30 的扇形,起始角度为 0,结束角度为 0.5PI。
画板1.填充曲线(50, 50, 30, 0, 0.5 * 3.14)

函数:画文本(文本内容, X, Y)

在画布上指定位置 (X, Y) 绘制文本的边框(字体镂空效果),边框颜色由画笔样式决定。

' 绘制一个文本,在坐标 (50, 50) 绘制一个文本 "Hello VcnStudio"。
画板1.画文本("Hello VcnStudio", 50, 50)

函数:填充文本(文本内容, X, Y)

在画布上指定位置 (X, Y) 绘制填充的文本,填充颜色由填充样式决定。

' 填充一个文本,在坐标 (50, 50) 绘制一个文本 "Hello VcnStudio"。
画板1.填充文本("Hello VcnStudio", 50, 50)

函数:画直线(X1, Y1, X2, Y2)

在画布上从点 (X1, Y1) 到点 (X2, Y2) 绘制一条直线,线条样式由画笔样式决定。

' 绘制一条直线,从坐标 (10, 10) 到坐标 (100, 100)。
画板1.画直线(10, 10, 100, 100)

函数:画多边形(坐标点数组)

在画布上绘制一个多边形,参数值为包含各顶点坐标的数组,格式为 [{X, Y}, ...]。

' 绘制一个五边形,在坐标 (50, 50) 绘制一个五边形,边长为 50。
画板1.画多边形([{50, 50}, {100, 50}, {150, 100}, {100, 150}, {50, 100}])

函数:填充多边形(坐标点数组)

在画布上绘制并填充一个多边形,参数值为包含各顶点坐标的数组,格式为 [{X, Y}, ...]。

' 填充一个五边形,在坐标 (50, 50) 填充一个五边形,边长为 50。
画板1.填充多边形([{50, 50}, {100, 50}, {150, 100}, {100, 150}, {50, 100}])

函数:画图像(图片地址, X, Y, 宽度, 高度)

在画布上指定位置 (X, Y) 绘制图像。

' 绘制一张图片,在坐标 (50, 50) 绘制一张图片,图片大小为 100 * 100。
画板1.画图像("static/img1.png", 50, 50, 100, 100)

函数:清空()

清除画布上的所有内容。

函数:保存状态()

保存当前画布的状态,包括样式、变换等。

函数:恢复状态()

恢复之前保存的画布状态。

函数:旋转内容(弧度值)

以画布原点为中心旋转画布,旋转角度单位为弧度制。

函数:平移内容(X, Y)

将画布原点平移到指定位置 (X, Y)。

函数:缩放内容(X, Y)

对画布进行缩放,X 为水平缩放比例,Y 为垂直缩放比例。