一种WPF中表格系统及实现方法技术方案

技术编号:15690579 阅读:113 留言:0更新日期:2017-06-24 03:05
一种WPF中表格系统及实现方法,涉及WPF领域,包括内容承担单元、边框单元和容器单元,步骤为:S1.通过容器单元,根据需求定义表格行列数,并循环计算每一行的行高和每一列的列宽;S2.遍历表格,到达对应的行列后,通过内容承担单元对表格中的单元格添加文本;S3.采用边框单元设置表格边框的宽度和颜色,并且遍历所有单元格,通过每个单元格添加两个控件GridSplitter,分别改变单元格的行高和列宽;S4.将创建后的表格保存成XML文件;本发明专利技术能够对单元格进行拆分、合并和样式设置,提升用户体验。

A table system in WPF and its implementation method

A table in the WPF system and the realization method relates to WPF field, including bear unit, frame unit and container unit, which comprises the following steps: S1. through the container unit, according to the requirements definition table ranks number and cycle was calculated for each row and each column of the high Lecoing; S2. traversal form to the corresponding ranks later, through the unit to take a cell in a table to add text; using S3. frame unit set the table border width and color, and traversal of all cells, each cell by adding two GridSplitter controls, were changed to a row of cells and Lecoing; S4. will create the table saved as XML files; the invention can split, merge and style settings of a cell, enhance the user experience.

【技术实现步骤摘要】
一种WPF中表格系统及实现方法
本专利技术涉及WPF领域,具体来讲涉及一种WPF中表格系统及实现方法。
技术介绍
WPF(WindowsPresentationFoundation,Windows呈现基础)是微软推出的基于WindowsVista的用户界面框架,属于.NETFramework3.0的一部分。WPF提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。表格控件是一套控件组件,用户可以通过其实现表格内容及样式编辑、表格大小调整、以及单元格合并与拆分等一些功能。由于WPF现有的承载列表的技术方案是DataGrid控件,该控件可以显示一般的列表数据,但是没有办法实现单元格的合并、拆分等表格功能,WPF自带的表格控件不能对单元格进行拆分、合并和样式设置,用户体验不好。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种WPF中表格系统及实现方法,能够对单元格进行拆分、合并和样式设置,提升用户体验。为达到以上目的,本专利技术采取一种WPF中表格系统,表格由单元格作为基础组件,所述系统包括:内容承担单元,用于构建单元格对象,包括文本样式和背景颜色;边框单元,用于构建单元格边框样式,还用于拖动边框更改行高和列宽;容器单元,包括表格容器和单元格容器,所述表格容器用于定义表格的行、列数、计算行高和列宽、以及合并单元格和拆分单元格,所述单元格容器用于支持内容承担单元和边框单元。在上述技术方案的基础上,所述容器单元采用WPF中布局控件Grid,内容承担单元采用富文本框控件RichTextBox,边框单元采用控件GridSplitter。本专利技术还提供一种WPF中表格实现方法,包括:S1.通过容器单元,根据需求定义表格行列数,并循环计算每一行的行高和每一列的列宽;S2.遍历表格,到达对应的行列后,通过内容承担单元对表格中的单元格添加文本;S3.采用边框单元设置表格边框的宽度和颜色,并且遍历所有单元格,通过每个单元格添加两个控件GridSplitter,分别改变单元格的行高和列宽;S4.将创建后的表格保存成XML文件;表格建成后,合并单元格时,选中单元格所在的起始行列以及所占行列数,设置选中区域的第一个单元格跨行跨列显示,并将其他单元格的内容合并到第一个单元格中显示,然后删除其他单元格;拆分单元格时,获取选中的单元格,在表格容器中添加对应的行列,并在其中创建单元格,将原单元格内容设置到新创建的第一个单元格中。在上述技术方案的基础上,所述容器单元采用WPF中布局控件Grid,内容承担单元采用富文本框控件RichTextBox,边框单元采用控件GridSplitter。在上述技术方案的基础上,所述S2中,富文本框控件RichTextBox不仅对文本进行统一的样式修改,还支持单独文字修改为独立的样式。在上述技术方案的基础上,所述S2中,如果单元格存在背景色,将布局控件Grid的背景设置对应的颜色,并将单元格容器定位到表格容器对应的行列处。在上述技术方案的基础上,所述S3中,通过修改控件GridSplitter的样式改变边框的样式,拖动控件GridSplitter通过改变表格容器中左右布局的大小,实现行高和列宽的改变。在上述技术方案的基础上,所述S3中,所述改变边框的样式通过画刷DrawingBrush绘制控件GridSplitter的背景,包括绘制颜色和矢量图形。在上述技术方案的基础上,所述拆分单元格时,如果选中单元格为已合并成一行的两行单元格,将其拆分成一个3*3的9个单元格,设置表格容器多加一行,9个单元格分别放置在三行中,同时原选中单元格外的第一行不变,第二行跨两行布局。本专利技术的有益效果在于:能够实现基本表格功能,包括自定义行列数、编辑单元格文字样式、调整单元格边框样式、修改单元格背景色和大小等功能,满足了日常使用的需求,提升用户体验;并且实现了相邻单元格的合并操作,以及将单元格内部拆分成指定行列表格的功能。附图说明图1为本专利技术实施例WPF中表格系统示意图;图2为本专利技术实施例WPF中表格实现方法的流程图;图3为本专利技术实施例合并单元格的流程图;图4为本专利技术实施例拆分单元格的流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。如图1所示,本专利技术一种WPF中表格系统,表格由单元格作为基础组件,所述表格系统包括内容承担单元、边框单元和容器单元。内容承担单元用于构建单元格对象,包括文本样式和背景颜色。边框单元用于构建单元格边框样式,还用于拖动边框更改行高和列宽。容器单元包括表格容器和单元格容器,表格容器用于定义表格的行、列数、计算行高和列宽、以及合并单元格和拆分单元格,所述单元格容器用于支持内容承担单元和边框单元。具体的,所述容器单元采用WPF中布局控件Grid,内容承担单元采用富文本框控件RichTextBox,边框单元采用控件GridSplitter。表格使用布局控件Grid作为容器,通过表格容器的布局功能,决定单位格的位置、大小、跨行数和跨列数,从而实现表格的拆分,合并单元格功能。富文本框作为内容承载,可以加载文本、图片和控件等,使用文本流来控制字体多变的样式。控件GridSplitter可以呈现单元格的宽度、样式和颜色,还可以提供重新分配Grid行列布局空间的功能,用来实现拖动单元格边框,就改变当前列宽或行高的功能。如图2所示,本专利技术一种WPF中表格实现方法,包括如下步骤:S1.通过容器单元,根据需求定义表格行列数,并循环计算每一行的行高和每一列的列宽。具体的,以WPF中常用布局控件Grid作为表格容器,布局控件Grid的特点是可以自定义行列对内部控件进行布局,根据要表格的行列数定义布局控件Grid中的行列数,并循环计算每一行的高及每一列的宽。S2.遍历表格,到达对应的行列后,通过内容承担单元对表格中单元格添加文本。具体的,内容承担单元包括富文本框控件RichTextBox,表格容器及行列划分好后,遍历行列,构建单元格对象。富文本框控件RichTextBox不仅能对文本进行统一的样式修改,还支持单独文字修改为独立的样式。遍历到对应的行列后,使用布局控件Grid构建单元格容器,然后添加富文本框控件RichTextBox,如果单元格存在背景色,将布局控件Grid的背景设置对应的颜色,并将单元格容器定位到表格容器对应的行列处,如果有跨行跨列的情况,设置对应的值。S3.采用边框单元设置表格边框的宽度和颜色,并且遍历所有单元格,通过每个单元格添加两个控件GridSplitter,一个用来改变单元格的行高,另一个用来改变单元格的列宽,并设定初始样式。具体的,单元格的边框主要有两个功能,一是边框的样式,包括宽度和颜色等,二是拖动边框更改行或列的高宽。边框单元采用控件GridSplitter,通过修改控件GridSplitter的样式来改变边框的样式;同时拖动控件GridSplitter,通过改变表格容器中左右布局的大小,实现行高和列宽的改变。改变边框的样式通过画刷DrawingBrush绘制控件GridSplitter的背景,包括绘制颜色和矢量图形,可根据需求定义指定的样式,灵活多样。S4.单元格创建完毕后,由于要进行保存和读取,所以需本文档来自技高网...
一种WPF中表格系统及实现方法

【技术保护点】
一种WPF中表格系统,表格由单元格作为基础组件,其特征在于,所述系统包括:内容承担单元,用于构建单元格对象,包括文本样式和背景颜色;边框单元,用于构建单元格边框样式,还用于拖动边框更改行高和列宽;容器单元,包括表格容器和单元格容器,所述表格容器用于定义表格的行、列数、计算行高和列宽、以及合并单元格和拆分单元格,所述单元格容器用于支持内容承担单元和边框单元。

【技术特征摘要】
1.一种WPF中表格系统,表格由单元格作为基础组件,其特征在于,所述系统包括:内容承担单元,用于构建单元格对象,包括文本样式和背景颜色;边框单元,用于构建单元格边框样式,还用于拖动边框更改行高和列宽;容器单元,包括表格容器和单元格容器,所述表格容器用于定义表格的行、列数、计算行高和列宽、以及合并单元格和拆分单元格,所述单元格容器用于支持内容承担单元和边框单元。2.如权利要求1所述的WPF中表格系统,其特征在于:所述容器单元采用WPF中布局控件Grid,内容承担单元采用富文本框控件RichTextBox,边框单元采用控件GridSplitter。3.一种基于权利要求1所述系统的WPF中表格实现方法,其特征在于,包括:S1.通过容器单元,根据需求定义表格行列数,并循环计算每一行的行高和每一列的列宽;S2.遍历表格,到达对应的行列后,通过内容承担单元对表格中的单元格添加文本;S3.采用边框单元设置表格边框的宽度和颜色,并且遍历所有单元格,通过每个单元格添加两个控件GridSplitter,分别改变单元格的行高和列宽;S4.将创建后的表格保存成XML文件;表格建成后,合并单元格时,选中单元格所在的起始行列以及所占行列数,设置选中区域的第一个单元格跨行跨列显示,并将其他单元格的内容合并到第一个单元格中显示,然后删除其他单元格;拆分单元格时,获取选中的单元格,在表格容器中添加对应的行列,并在其中创建单元格,将...

【专利技术属性】
技术研发人员:戴有勇
申请(专利权)人:武汉天喻教育科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1