单元格的容器
我们已经提到过,一个单元格就是一个容器,单元格有一个Area属性,可以返回单元格的容器(RenderArea),既然是容器,肯定可以容纳多个对象。
示例
Dim
doc
As New PrintDoc
Dim rt As
New prt.RenderTable
Dim ra As
prt.RenderArea
Dim rm As
prt.RenderImage
Dim rx As
prt.RenderText
rt.Style.GridLines.All = New prt.LineDef
rt.CellStyle.Spacing.All = 1
'单元格内容和网格线距离1毫米
rt.Cols.Count = 3
'总列数为3
For i As
Integer =
0
To
3
ra = rt.Cells(i,0).Area
'引用单元格的容器
rm = New prt.RenderImage
'创建一个图片
rx = New prt.RenderText
'创建一个文本
ra.Stacking = prt.StackingRulesEnum.BlockLeftToRight
'排列方式改为从左到右
'设置图片对象
rm.Image = GetImage("Can.ico")
rm.Style.Spacing.Right =
2
'距离右边的对象2毫米
'设置文本对象
rx.Text = "加拿大"
rx.Height = "Prev.Height"
'rx的高度等于图片对象rm的高度
rx.Style.TextAlignVert = prt.AlignVertEnum.Center
'文本垂直居中
'设置RenderArea,并将文本和图片加入到RenderArea
ra.Children.Add(rm)
'加入图片到RenderArea中
ra.Children.Add(rx)
'加入文本到RenderArea中
Next
doc.Body.Children.Add(rt)
Doc.Preview()
执行结果
需要特别留意的的是,容器的高度等于最高子对象的高度,也就是图片的高度,为了让文本对象的内容能够在单元格中垂直居中,必须将文本对象的高度设置为图片对象的高度:
rx.Height
= "Prev.Height"
'rx的高度等于图片对象rm的高度
你可以删除这一行,体会一下该行代码所带来的不同。
本页地址:http://www.foxtable.com/webhelp/topics/1220.htm