我的编程空间,编程开发者的网络收藏夹
学习永远不晚

GoJs的文本绘图模板TextBlock怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

GoJs的文本绘图模板TextBlock怎么使用

本篇内容主要讲解“GoJs的文本绘图模板TextBlock怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GoJs的文本绘图模板TextBlock怎么使用”吧!

TextBlock的使用

首先我们先准备一些数据

nodes: [        {          key: "1",          text: "三国人物志",          nodeBs: "root",        },        {          key: "1-1",          text: "曹操",          nodeBs: "cc",        },        {          key: "1-2",          text: "刘备",          nodeBs: "lb",        },        {          key: "1-3",          text: "孙权",          nodeBs: "sq",        },      ],      links: [        {          from: "1",          to: "1-1",        },        {          from: "1",          to: "1-2",        },        {          from: "1",          to: "1-3",        },      ],

其中nodes中的key字段为节点的唯一标识,为必须。而text字段则是我们希望显示到节点上的内容,nodeBs主要是一个节点的标识,方便批量处理一些节点的时候进行判断。links中存放的为必须的from(起点)和to(终点)字段。

this.myDiagram = $$(go.Diagram, "myDiagramDiv", {    layout: $$(go.TreeLayout),//在初始化时画布的布局方式});this.myDiagram.nodeTemplate = $$(    go.Node,  //节点的node配置项    "Horizontal", //节点内部的布局方式    $$(        go.TextBlock,//指定为gojs规定的文本显示形式        new go.Binding("text", "text") //将我们的text字段显示到节点中    ))this.myDiagram.model = new go.GraphLinksModel(this.nodes, this.links);

在这里我们可以看一下,通过我们实例化之后的nodeTemplate属性来实现我们的node的模板进行一个自定义的填充内容,来实现节点内部不同内容的显示。其中go.Node是固定搭配,就是我们是对node模板进行一个配置,然后就需要我们我们的操作对象为node,然后再内部嵌套各种其他的模板。Horizontal是节点内部的一种布局方式,这个我们后面会统一进行分析。

当然你也可以写成这种形式

this.myDiagram.nodeTemplate = new go.Node().add(new go.TextBlock().bind("text"));

因为第一种的写法比较清晰,因此我们主要是采用第一种方式进行节点内的布局填充,这样我们就得到了这样一个图形

GoJs的文本绘图模板TextBlock怎么使用

TextBlock的配置属性

在这里对显示的文字修改一下样式,这里列举一些常用的属性

$$(    go.TextBlock,//指定为gojs规定的文本显示形式    {        stroke: "red",//设置字体颜色,默认为黑色        background:"yellow",//字体的背景颜色,默认透明        font: "14px,sans-serif ",//字体的名称,大小,是否加粗等        margin:8,//类似css,外边距        width:20,//宽度        height:20,//高度        textAlign:'left',//文本的对齐方式,有left,center,right三种属性        alignment:go.Spot.Left, // 文本在父级结构中的对齐方式,有go.Spot.Left,go.Spot.Center,go.Spot.Right三种属性        minSize: new go.Size(10, 14),//文本的最小尺寸,两个参数分别为宽和高        maxSize: new go.Size(NaN, NaN), //文本的最大宽度,如果我们设置为NaN,其尺寸会进行自适应        overflow: go.TextBlock.OverflowClip,//文本溢出宽度之后的显示方式,OverflowClip为换行.OverflowEllipsis是显示省略号        maxLines: 2,//换行之后最多显示几行        verticalAlignment:"Top"//垂直方向上的的对齐方式,有Top,Center,Bottom三种属性       },)

既然textAlignalignment都是文本的对齐方式,那他们之间有什么区别呢?我们把节点单独给拿出来,然后分别对添加这两种属性的三个参数值进行对比一下。

$$(go.Panel, 'Vertical',{width:300,background:'#67B73C'},//父级模板,相当于外层html标签,然后我们给外层标签一个宽度    $$(go.TextBlock,{textAlign:'left',text:'textAlignLeft',width:200,background:'#FF9900',margin:5}),    $$(go.TextBlock,{textAlign:'center',text:'textAlignCenter',width:200,background:'#FF9900',margin:5}),    $$(go.TextBlock,{textAlign:'right',text:'textAlignRight',width:200,background:'#FF9900',margin:5}),    $$(go.TextBlock,{alignment:go.Spot.Left,text:'alignmentLeft',width:200,background:'#FF9900',margin:5}),    $$(go.TextBlock,{alignment:go.Spot.Center,text:'alignmentCenter',width:200,background:'#FF9900',margin:5}),    $$(go.TextBlock,{alignment:go.Spot.Right,text:'alignmentRight',width:200,background:'#FF9900',margin:5})),

GoJs的文本绘图模板TextBlock怎么使用

我们在外层增加一个模板并且添加宽度之后,分别在内层的文本标签设置不同的属性和属性值,显示内容可以知道。textAlign属性是如果设置了文本区域的宽度,在文本显示区域内部居左、居中、居右显示。而alignment属性则是以文本区域为一个整体,全部内容在父级模板中的相对位置居左、居中、居右。

然后我们看一下overflow的两种文本溢出方式的区别

$$(go.Panel, 'Vertical',{width:300,background:'#67B73C'},    $$(go.TextBlock,{text:'go textBlock overflowDefult overflowDefult',width:100,background:'#FF9900',margin:5}),    $$(go.TextBlock,{text:'go textBlock overflowDefult overflowDefult',maxLines: 2,width:100,background:'#FF9900',margin:5}),    $$(go.TextBlock,{overflow: go.TextBlock.OverflowClip,text:'go textBlock overflowClip overflowClip',width:100,background:'#FF9900',margin:5}),    $$(go.TextBlock,{overflow: go.TextBlock.OverflowClip,maxLines: 2,text:'go textBlock overflowClip overflowClip',width:100,background:'#FF9900',margin:5}),    $$(go.TextBlock,{overflow: go.TextBlock.OverflowEllipsis,text:'go textBlock overflowEllipsis overflowEllipsis',width:100,background:'#FF9900',margin:5}),    $$(go.TextBlock,{overflow: go.TextBlock.OverflowEllipsis,maxLines: 2,text:'go textBlock overflowEllipsis overflowEllipsis',width:100,background:'#FF9900',margin:5}),),

GoJs的文本绘图模板TextBlock怎么使用

由此我们可以发现overflow的两种属性go.TextBlock.OverflowClipgo.TextBlock.OverflowEllipsis在单独设置的时候是和默认效果没有区别的,都是会默认进行一个换行。而如果我们再加上行数的限制maxLines: 2之后就出现了区别go.TextBlock.OverflowClip属性是和默认情况是一样的,会对我们的文本进行一个整词切割,而go.TextBlock.OverflowEllipsis则是出现了超出部门内容显示...,因此在开发过程中我们可以可以对超长文本进行go.TextBlock.OverflowEllipsis属性和maxLines的结合使用,保证项目中的的节点的规格不至于过长而导致图形的显示冗余。

节点内文本的双击编辑

gojs还为我们提供了editable属性,可以在节点内直接双击出现的输入框对我们的节点内的文本显示进行一个编辑,在编辑完成之后,只需要点击画布就可以把编辑后的内容显示到节点之中。

$$(    go.TextBlock,    {        editable:true,//是否开启双击编辑节点内部文本功能        textEdited: function (tb, olds, news) {//编辑文本成功之后的回调函数            console.log(tb.part.data,olds,news)        }    },    new go.Binding("text", "text")),

GoJs的文本绘图模板TextBlock怎么使用

GoJs的文本绘图模板TextBlock怎么使用

在节点的文本框双击之后就可以出现一个输入框的弹出,可以输入新的内容之后点击画布,然后在编辑成功之后的回调函数textEdited分别有三个参数,我们可以通过第一个参数的tb.part.data来获取我们操作的节点的全部数据,而第二个参数则是编辑之前的内容(也就是我们示例中的曹操),而第三个参数则是我们编辑之后的内容(也就是我们示例中的曹操阿瞒)。因此我们可以通过获取之后的新值来更改我们的数据来保证数据和图中内容对应。

到此,相信大家对“GoJs的文本绘图模板TextBlock怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

GoJs的文本绘图模板TextBlock怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

GoJs的文本绘图模板TextBlock怎么使用

本篇内容主要讲解“GoJs的文本绘图模板TextBlock怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GoJs的文本绘图模板TextBlock怎么使用”吧!TextBlock的使用首先
2023-07-06

GoJs的文本绘图模板TextBlock使用实例

这篇文章主要为大家介绍了GoJs的文本绘图模板TextBlock使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

GoJs图片绘图模板Picture怎么使用

本文小编为大家详细介绍“GoJs图片绘图模板Picture怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“GoJs图片绘图模板Picture怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。go.Pi
2023-07-06

GoJs图形绘图模板Shape怎么使用

这篇“GoJs图形绘图模板Shape怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GoJs图形绘图模板Shape怎么
2023-07-06

GoJs 图片绘图模板Picture使用示例详解

这篇文章主要为大家介绍了GoJs 图片绘图模板Picture使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

GoJs面板绘图模板go.Panel使用示例详解

这篇文章主要为大家介绍了GoJs面板绘图模板go.Panel使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

GoJs分组绘图模板go.Group使用示例详解

这篇文章主要为大家介绍了GoJs分组绘图模板go.Group使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

GoJs节点绘图模板之go.Node使用示例详解

这篇文章主要为大家介绍了GoJs节点绘图模板go.Node使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

GoJs连线绘图模板Link使用示例详解

这篇文章主要为大家介绍了GoJs连线绘图模板Link使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

Android Eclipse 注释模板的使用(图文说明)

1、设置的入口,我我们可以在下图所示的地方个性化我们自己的代码风格2、文件(Files)注释标签代码如下:/* * @Title: ${file_name} * @Copyright: XXX Co., Ltd. Copyright
2022-06-06

JavaMe中怎么使用TextEdit绘制文本框

这期内容当中小编将会给大家带来有关JavaMe中怎么使用TextEdit绘制文本框,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 运用Graphics、GameCanvas绘制文本框和光标。2 检测到输
2023-06-17

无法使用 Go 的“文本/模板”库导入变量

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《无法使用 Go 的“文本/模板”库导入变量》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多
无法使用 Go 的“文本/模板”库导入变量
2024-04-04

怎么使用Vue+Echarts实现基本K线图的绘制

本篇内容介绍了“怎么使用Vue+Echarts实现基本K线图的绘制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 引入Echarts1.1
2023-07-05

怎么使用Python的Matplotlib库绘图

这篇“怎么使用Python的Matplotlib库绘图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Python的M
2023-07-02

Vue3中的模板语法怎么使用

这篇文章主要介绍“Vue3中的模板语法怎么使用”,在日常操作中,相信很多人在Vue3中的模板语法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中的模板语法怎么使用”的疑惑有所帮助!接下来,请跟
2023-07-05

高清屏中使用Canvas绘图出现模糊怎么办

小编给大家分享一下高清屏中使用Canvas绘图出现模糊怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!高清屏出现以前,屏幕的一个物理像素就是css所定义的一个
2023-06-09

怎么用Python绘制论文中的曲线图

本篇内容主要讲解“怎么用Python绘制论文中的曲线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python绘制论文中的曲线图”吧!1.折线图 plt.plot()常用的一些参数:颜色
2023-07-05

python数学建模之怎么使用Matplotlib实现图片绘制

本篇内容介绍了“python数学建模之怎么使用Matplotlib实现图片绘制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Matplotl
2023-07-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录