我有一个DevExpress报告,其中包含一个XRLabel。有时标签的内容会分为多行,因此我将Multiline
属性设置为true
以及CanGrow
属性。
然而,我还需要它所包含的Band以扩展它以允许多余线条的空间。这是一个TopMargin乐队。 (没有CanGrow
属性)
我尝试过创建一个脚本来实现这个目标,但它似乎没有做任何事情:
private void TopMargin_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
TopMargin.Height = 100 + uxLblMarginTopLeft.Height;
}
另外,在调试时,我看到uxLblMarginTopLeft.Height
似乎只给出了它在Visual Studio属性管理器中最初设置的值,而不是由于多行而扩展后的高度。
通常标签绑定到一个值,但如果我在脚本中将值设置为长字符串,则会遇到同样的问题。
编辑
我设法通过将其置于报告本身的BeforePrint事件而不是Band(如上所述)并使用此代码来以编程方式更改高度:
private void TBaseReport_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
XtraReport report = (XtraReport) sender;
report.Bands[BandKind.TopMargin].Height = 200;
Console.WriteLine("Label Height is : |" + uxLblMarginTopLeft.Height + "|");
}
但是,标签的高度保持为19,而不是其展开的高度。
答案 0 :(得分:0)
好吧,我也在DevExpress网站上问了一个类似的问题,得到了这个答案:
https://www.devexpress.com/Support/Center/Question/Details/T359777
基本上测量文本字符串并像这样计算高度。似乎没有办法获得标签的“真实”高度。