• MultiRow发现之旅(三) 模板管理器和Table


    前文回顾

    MultiRow发现之旅(一)- 高效模板设计器

    MultiRow发现之旅(二)- 详解属性管理器

     

    模板管理器

    当模板中Cell比较多的时候,你往往会眼花缭乱,这时“模板管理器”就特别有用。请点击该工具栏中的第一个按钮,就能打开“模板管理器”工具窗口了(通过点击VisualStudio菜单的“视图”-->“其它窗口”-->“模板管理器 6.0”也能打开,“属性管理器”及“NamedCellStyle 管理器”类似):

    clip_image002clip_image004

    这是一个标准的VisualStudio工具窗口,所以你可以把它放到任意地方,比如与“解决方案资源管理器”窗口一起停靠在VisualStudio的右边,“属性”窗口的上面。

    “模板管理器”类似于VisualStudio的“文档大纲(Document Outline)”窗口,它有4大主要功能:

    1、 通过这个窗口,你可以一览当前模板中的所有元素(Template\Section\Cell)以及它们之间的关系。窗口中所有元素都按照它们的父子关系及索引顺序排列。

    2、 通过它选择某个元素,并通过右键菜单做剪切\删除\重命名等操作。

    3、 通过点击窗口中工具栏上的向上箭头和向下箭头改变Cell的索引。当然,你更可以直接拖拽Cell到你想要的索引位置、甚至是其它Section中。

    4、 点击工具栏上最右边的“设置”按钮来配置MultiRow模板设计器(通过点击VisualStudio菜单的“工具”-->“选项”打开“选项”对话框并在左边选择“MultiRow 6..0 模板设计器”也可以)。
    clip_image006
    这里提供了MultiRow 模板设计器的部分外观以及操作方式的设置。比如你可以设置Cell的对齐方式为Grid,这时Section的背景会显示一些对齐用的点,而当你拖拽元素的时候,元素会吸附到点上而不是其它元素上。

    Table

    MultiRow最大的特点是自由布局,所以MultiRow的模板设计器的操作就像Form设计器一样是以Cell为单位的。但很多时候,你需要的模板中间有很大一片区域就是一个方方正正的标准表格,如果要一个一个Cell的拼出这样一个表格的话,是不是太麻烦了?没关系,MultiRow的模板设计器早就考虑到了你的这种用例,并提供了一揽子解决方案,这就是“Table”。

    创建Table

    现在请新建一个空白模板,并打开“工具箱”中的“设计时组件 6.0”选项卡,选择“Table”:
    clip_image002[5]

    然后在Row上按下鼠标左键,拉出一片区域再放手,看看发生了什么?

    clip_image004[5]

    理解Table

    Table是只有在设计时才存在的概念,在运行时实际上就是一堆离散的Cell,而Table只是把这些Cell作为一个整体来管理而已;此时,Table有行和列的概念,Table中的Cell必需与Table的行/列对齐。

    Table模式

    当你点击Table里面时,Table将进入另外一种编辑模式——Table模式:

    clip_image006[5]

    在这种模式下,Table好像就像和外面的世界分离了,你对Table内部的操作都将把Table视为上下文环境。比如按’Tab’键只会在Table内部循环,按’Ctrl’ + ‘A’只会选中Table中的所有Cell。

    而一旦进入Table模式, Table就会显示虚拟的行头和列头,你可以像操作Excel一样选择一个或多个行/列,调整它们的高度/宽度,或在“属性”窗口中设置它们的宽度/高度;当然,你也可以使用右键菜单做更复杂的操作,比如插入一列:

    clip_image008

    你注意到右键菜单上有“合并”、“拆分”菜单项了吗?没错,Table完全能够像Excel那样合并/拆分单元格:

    clip_image010

    Table中的Cell默认都是TextBoxCell,如果你需要其它类型的Cell,你可以使用右键菜单把你选择的Cell置换成其它类型(同样,你也可以在置换Table外面的Cell)。新的Cell仅仅保留基类Cell的属性值,而旧Cell上特有属性的值将被丢弃。

    例如:将一个TextBoxCell的MaxLength属性和ReadOnly属性都设了值,而后置换为ComboBoxCell,尽管ComboBoxCell也有MaxLength属性,但是由于MaxLength属性不是定义在基类Cell上的,所以ComboBoxCell的MaxLength将保留默认值,但是ReadOnly属性会和旧的TextBoxCell保持一致。

    Table中的Cell也可以删除,被删除的区域将以灰白相间的格子图案来表示,被删除的区域可以选择,选择后可以使用“置换”操作重新放上Cell。

    使用Table一个最为重要的便利就是设置外圈边框:按’Control’+’A’ 选择Table中所有Cell,或者选择一个矩形区域的Cell,然后点击右键菜单中的“边框”菜单项,这时就会弹出“边框”编辑器,边框类型选择“圆角边框”或者普通边框,注意比较和其它地方弹出的“边框”编辑器有什么不同?

    clip_image012

    没错,这个编辑器多了“内部”的按钮,由于对于MultiRow来说,每一个Cell都是一个独立的单元,所以Cell只有外边框,没有内边框;即使你在Table外面把Cell紧靠在一起摆成一个表格再设边框,弹出的边框编辑器也是没有“内部”按钮的。

    照上图的样式设置好边框,点击Table外面的区域,看看边框的样子(这里顺带说一句,MultiRow中边框的每一条边的颜色、线型、角度都是可以单独设置的):

    clip_image014

    Cell模式

    当点击Table外面的区域或者Cell退出Table模式后,Table进入Cell模式。

    此时,设计器将Table看做一个整体的元素,你可以理解为把Table中的所有Cell组成了一个进行处理。对Table的操作会影响Table中所有的Cell。你可以像单个Cell那样对它进行剪切/复制/粘帖/调整大小等操作。

    对Table调整大小将使Table进行等比例缩放,但是由于Cell的大小是整形的,所以有可能导致原来大小相同的Cell缩放后大小出现偏差:

    clip_image016

    图中第三行的Cell比第一行和第二行高1个像素点。

    在Cell模式下,点击Table的边线周围(大概5个Pixel,此时光标将变为四个方向都有箭头的SizeAll)将选中整个Table。此时,拖拽将导致整个Table移动;而右键菜单将比其它Cell多了个“拆分成自由Cell”的菜单项,点击它后,整个Table将被拆分成自由Cell:

    clip_image018

    注意:被拆分后的Cell不能再重新组合成Table,除非使用“撤销”操作或者重新创建一个Table。

    MultiRow下载、安装及其它

    安装包下载:http://gcdn.grapecity.com/showtopic-786.html

    说明1:试用期限不是30天,而是20个使用日。这样更有利于您安排试用时间。

    说明2:安装MultiRow时就会自动安装MultiRow模板设计器。由于安装程序会重新配置你系统中所有的VisualStudio,所以如果你系统中安装的VisualStudio较多的话,安装过程可能需要你等待几分钟。

    说明3:请确保你的VisualStudio是Visual Studio2005 SP1及以上的正式版本,MultiRow模板设计器无法工作在Visual Studio Express Edition上。

    如果您有什么问题、有什么建议、或者找到了Bug,欢迎到MultiRow官方论坛提问:http://gcdn.grapecity.com/



    本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网


  • 相关阅读:
    自定义控件(视图)2期笔记09:自定义视图之继承自ViewGroup(仿ViewPager效果案例)
    自定义控件(视图)2期笔记08:自定义控件之 9patch图说明
    TCP/IP协议原理与应用笔记10:TCP/IP协议族
    TCP/IP协议原理与应用笔记09:数据通信---封装
    TCP/IP协议原理与应用笔记08:对等层和对等实体
    TCP/IP协议原理与应用笔记07:HTTP、TCP/IP与socket区别
    TCP/IP协议原理与应用笔记06:OSI参考模型全称
    Android进阶笔记02:Android 网络请求库的比较及实战(二)
    Android进阶笔记01:Android 网络请求库的比较及实战(一)
    自定义控件(视图)2期笔记07:自定义控件之 自定义属性(开关按钮案例的优化)
  • 原文地址:https://www.cnblogs.com/powertoolsteam/p/1907703.html
Copyright © 2020-2023  润新知