单元格的容器
我们已经提到过,一个单元格就是一个容器,单元格有一个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