计算XRTableCell渲染的高度

时间:2012-02-06 00:36:52

标签: c# devexpress xtrareport

我正在编写一份报告,我需要计算XRTableCell的实际高度。我试图覆盖BeforePrint XRTableCell,但它会报告设计师使用的高度。

您如何获得渲染单元格的实际大小?

1 个答案:

答案 0 :(得分:0)

BeforePrint和AfterPrint事件在实际渲染完成之前发出。 您可以挂钩Draw事件来记录使用的尺寸,但是这些信息可能来得太晚,您无法有效地使用它。

如果预览表面被改变,则重复绘制事件,例如,如果调整保证金。

public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport {
    public XtraReport1() {
        InitializeComponent();
    }

    void xrTableCell1_BeforePrint( object sender, System.Drawing.Printing.PrintEventArgs e ) {
        // Called 1st.
    }

    void xrTableCell1_AfterPrint( object sender, EventArgs e ) {
        // Called 2nd.
    }    

    float xrTableCell1_RenderHeight = 0;
    void xrTableCell1_Draw( object sender, DrawEventArgs e ) {

        // Called 3rd. And repeated if the preview window is altered. (e.g. Margins moved)
        XRTableCell cell = sender as XRTableCell;
        xrTableCell1_RenderHeight = e.Bounds.Height;
    }    
}