void OnMouseDown(object sender, MouseEventArgs e) { GridHitInfo hitInfo = view.CalcHitInfo(e.Location); if (e.Button == MouseButtons.Left && HotTrackRectangle.Contains(e.Location)) { if ((SingleClick && e.Clicks == 1) || (!SingleClick && e.Clicks == 2)) { view.FocusedRowHandle = hitInfo.RowHandle; GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; GridColumn col = viewInfo.GetNearestColumn(e.Location); ShowGroupEditor(col); DXMouseEventArgs.GetMouseArgs(e).Handled = true; } } }
RectangleF GetColumnHeaderBounds(MyGridView view, MyGridColumn col) { GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; if (viewInfo.IsReady && !viewInfo.IsDataDirty) { foreach (GridColumnInfoArgs info in viewInfo.ColumnsInfo) { if (info.Column == col) { return(info.Bounds); } } } return(RectangleF.Empty); }
public int CalcGridHeight() { int height = 0; GridViewInfo info = (this.MainView as MyGridView).GetViewInfo() as GridViewInfo; height = info.CalcRealViewHeight(new Rectangle(0, 0, this.Width, 100000)); if (height < ScrollableContainer.Height) { Dock = DockStyle.Fill; } else { Dock = DockStyle.Top; } return(height); }
int getSumHeightRows() { int total = 0; GridViewInfo vi = grvData.GetViewInfo() as GridViewInfo; for (int i = 0; i < grvData.RowCount; i++) { GridRowInfo ri = vi.RowsInfo.FindRow(i); if (ri != null) { total += ri.Bounds.Height; } } return(total); }
private void gridView1_MouseDown(object sender, MouseEventArgs e) { Point p; int ri, ci; GridHitInfo ghi = GridView.CalcHitInfo(e.Location); if (ghi.Column.AbsoluteIndex != 1) { return; } ri = ghi.RowHandle; QueryTable qt = Query.Tables[ri]; ContextMenuStrip colPopup = new ContextMenuStrip(); bool firstLabel = true; foreach (QueryColumn qc in qt.QueryColumns) { // get list of allowed field labels/names for each table if (!QueryTableControl.QueryColumnVisible(qc) || !qc.MetaColumn.IsSearchable) { continue; } if (firstLabel) { firstLabel = false; } string label = CriteriaEditor.GetUniqueColumnLabel(qc); ToolStripMenuItem mi = new ToolStripMenuItem(label, null, new System.EventHandler(SelectedField_Click)); mi.Tag = "T" + (ri + 1); colPopup.Items.Add(mi); } p = e.Location; GridViewInfo viewInfo = (GridViewInfo)GridView.GetViewInfo(); GridCellInfo cellInfo = viewInfo.GetGridCellInfo(ghi.RowHandle, ghi.Column); if (cellInfo != null) { p = new Point(cellInfo.Bounds.Left, cellInfo.Bounds.Bottom); } colPopup.Show(Instance.TableGrid, p); }
private void grvThongKeHangTon_TopRowChanged(object sender, EventArgs e) { if (loading) { return; } GridViewInfo info = grvThongKeHangTon.GetViewInfo() as GridViewInfo; rowNums = info.RowsInfo.Count; Debug.Print(grvThongKeHangTon.TopRowIndex.ToString()); var workerThread = new Thread(FetchTopIndexData); workerThread.Start(grvThongKeHangTon.TopRowIndex); }
private void gridView1_CalcRowHeight(object sender, RowHeightEventArgs e) { GridView gv = sender as GridView; if (gv != null) { GridViewInfo vi = gv.GetViewInfo() as GridViewInfo; if (vi != null) { int h = vi.ViewRects.Rows.Height - 1; if (e.RowHeight > h) { e.RowHeight = h; } } } }
void GridControl_Paint(object sender, PaintEventArgs e) { //paint empty vertical column(s) GridViewInfo vi = gridView1.GetViewInfo() as GridViewInfo; using (SolidBrush brush = new SolidBrush(vi.PaintAppearance.Empty.BackColor)) { foreach (GridColumn col in emptyColumns) { GridColumnInfoArgs info = vi.ColumnsInfo[col]; Rectangle rect = info.Bounds; rect.Height = vi.ClientBounds.Height - 2; rect.Width -= 1; e.Graphics.FillRectangle(brush, rect); } } }
private void GridControl_PaintEx(object sender, DevExpress.XtraGrid.PaintExEventArgs e) { GridViewInfo gvi = View.GetViewInfo() as GridViewInfo; GridRowInfo gri = gvi.RowsInfo.FindRow(ItemRowHandle()); if (gri == null) { return; } Rectangle drawRect = gri.DataBounds; drawRect.Height--; e.Cache.FillRectangle(gri.Appearance.GetBackBrush(e.Cache), drawRect); drawRect.Inflate(-3, -3); e.Cache.DrawString(Text, gri.Appearance.Font, gri.Appearance.GetForeBrush(e.Cache), drawRect, gri.Appearance.GetStringFormat()); }
private void gridView1_CustomDrawFooter(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e) { e.Painter.DrawObject(e.Info); GridView view = sender as GridView; GridViewInfo gvi = view.GetViewInfo() as GridViewInfo; DevExpress.Utils.Drawing.FooterCellInfoArgs info = new DevExpress.Utils.Drawing.FooterCellInfoArgs(e.Cache); info.Appearance.Assign(view.PaintAppearance.FooterPanel); Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, view.IndicatorWidth, e.Bounds.Height); rect.Inflate(-3, -3); info.Bounds = rect; info.DisplayText = string.Format("{0}", view.DataRowCount); gvi.Painter.ElementsPainter.FooterCell.DrawObject(info); e.Handled = true; }
private int GetColumnBestHeight(GridViewInfo viewInfo, GridColumn column) { GridColumnInfoArgs ex = viewInfo.ColumnsInfo[column]; GraphicsInfo grInfo = new GraphicsInfo(); grInfo.AddGraphics(null); ex.Cache = grInfo.Cache; bool canDrawMore = true; Size captionSize = CalcCaptionTextSize(grInfo.Cache, ex as HeaderObjectInfoArgs, column.GetCaption()); Size res = ex.InnerElements.CalcMinSize(grInfo.Graphics, ref canDrawMore); res.Height = Math.Max(res.Height, captionSize.Height); res.Width += captionSize.Width; res = viewInfo.Painter.ElementsPainter.Column.CalcBoundsByClientRectangle(ex, new Rectangle(Point.Empty, res)).Size; grInfo.ReleaseGraphics(); return(res.Height); }
private void bidGridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e) { if (e.Column == this.gcAmount2) { GridViewInfo gvi = (GridViewInfo)this.bidGridView.GetViewInfo(); GridRowInfo gri = gvi.GetGridRowInfo(e.RowHandle); OrderBookEntry ee = (OrderBookEntry)this.bidGridView.GetRow(e.RowHandle); if (ee == null) { return; } int height = ScaleUtils.ScaleValue(3); int width = (int)(gri.Bounds.Width * ee.VolumePercent + 0.5f); e.Cache.FillRectangle(Color.FromArgb(0x20, Exchange.BidColor), new Rectangle(gri.Bounds.Right - width, gri.Bounds.Y, width, gri.Bounds.Height)); } }
void OnNotUploadData() { if (_ctsSetupColumnsDone != null) { _ctsSetupColumnsDone.Cancel(); } Invoke((EventHandler) delegate { if (!chkBoxShowData.Checked) { labelMESInfo.ForeColor = Color.Red; labelMESInfo.Text = "因OBD检测不合格,故数据不上传"; } GridViewInfo.Invalidate(); GridViewECUInfo.Invalidate(); GridViewIUPR.Invalidate(); }); }
private void ShowData() { gcShow.DataSource = dt; gvShow.Columns[0].Visible = false; try { gvShow.Columns["PICTURE"].Visible = false; } catch { } gvShow.OptionsView.ColumnAutoWidth = false; gvShow.BestFitColumns(); GridViewInfo viewInfo = gvShow.GetViewInfo() as GridViewInfo; if (viewInfo.ViewRects.ColumnTotalWidth < viewInfo.ViewRects.ColumnPanelWidth) { gvShow.OptionsView.ColumnAutoWidth = true; } }
private void simpleButton1_Click(object sender, EventArgs e) { listBoxControl1.Items.Clear(); GridViewInfo vi = gridView1.GetViewInfo() as GridViewInfo; GridRowInfoCollection screenRowCollection = vi.RowsInfo; GridColumnsInfo screenColumnwCollection = vi.ColumnsInfo; foreach (GridRowInfo ri in screenRowCollection) { foreach (GridColumnInfoArgs ci in screenColumnwCollection) { if (ci.Column != null) { listBoxControl1.Items.Add((gridView1.GetRowCellValue(ri.RowHandle, ci.Column).ToString())); } } } }
AppearanceObject GetCellAppearance(int gridRowHandle, GridColumn gridColumn) { GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; GridCellInfo cellInfo = viewInfo.GetGridCellInfo(gridRowHandle, gridColumn); if (cellInfo == null) { cellInfo = new GridCellInfo(new GridColumnInfoArgs(gridColumn), new GridDataRowInfo(viewInfo, gridRowHandle, view.GetRowLevel(gridRowHandle)), Rectangle.Empty); } MethodInfo me = viewInfo.GetType().GetMethod("UpdateCellAppearance", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); if (me != null) { me.Invoke(viewInfo, new object[] { cellInfo, true }); } viewInfo.UpdateCellAppearance(cellInfo); return(cellInfo.Appearance); }
public int GetRowHeight() { if (_GridViewType == GridViewType.GridView || _GridViewType == GridViewType.BandedGridView || _GridViewType == GridViewType.AdvBandedGridView) { GridViewInfo viewInfo = (MainView as GridView).GetViewInfo() as GridViewInfo; const int GridControlMaxHeight = 30000; int height = viewInfo.CalcRealViewHeight(new Rectangle(0, 0, (MainView as GridView).GridControl.Width, GridControlMaxHeight)); if (height >= GridControlMaxHeight) { height = (MainView as GridView).GridControl.Parent.Height; } return(height); } else { return(-1); } }
private Rectangle CalcCheckBoxRectangle(GridColumn col) { GraphicsInfo.Default.AddGraphics(null); GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; GridColumnInfoArgs columnArgs = viewInfo.ColumnsInfo[col]; Rectangle rect; try { rect = GetCheckBoxRectangle(columnArgs, GraphicsInfo.Default.Graphics); } finally { GraphicsInfo.Default.ReleaseGraphics(); } return(rect); }
public void DrawMergedCell(MyMergedCell cell, PaintEventArgs e) { int delta = cell.Column1.VisibleIndex - cell.Column2.VisibleIndex; if (Math.Abs(delta) > 1) { return; } GridViewInfo vi = View.GetViewInfo() as GridViewInfo; GridCellInfo gridCellInfo1 = vi.GetGridCellInfo(cell.RowHandle, cell.Column1); GridCellInfo gridCellInfo2 = vi.GetGridCellInfo(cell.RowHandle, cell.Column2); if (gridCellInfo1 == null || gridCellInfo2 == null) { return; } Rectangle targetRect = Rectangle.Union(gridCellInfo1.Bounds, gridCellInfo2.Bounds); gridCellInfo1.Bounds = targetRect; gridCellInfo1.CellValueRect = targetRect; gridCellInfo2.Bounds = targetRect; gridCellInfo2.CellValueRect = targetRect; if (delta < 0) { gridCellInfo1 = gridCellInfo2; } if (gridCellInfo1.ViewInfo == null) //yjkim modify { return; } Rectangle bounds = gridCellInfo1.ViewInfo.Bounds; //bounds.Location = new System.Drawing.Point(bounds.Location.X + 1, bounds.Location.Y + 1); bounds.Width = targetRect.Width - 2; bounds.Height = targetRect.Height - 2; gridCellInfo1.ViewInfo.Bounds = bounds; gridCellInfo1.ViewInfo.CalcViewInfo(e.Graphics); IsCustomPainting = true; GraphicsCache cache = new GraphicsCache(e.Graphics); gridCellInfo1.Appearance.FillRectangle(cache, gridCellInfo1.Bounds); DrawRowCell(new GridViewDrawArgs(cache, vi, vi.ViewRects.Bounds), gridCellInfo1); IsCustomPainting = false;; }
private void grdViewOC_MouseDown(object sender, MouseEventArgs e) { if ((Control.ModifierKeys & Keys.Control) != Keys.Control) { GridView view = sender as GridView; GridHitInfo hi = view.CalcHitInfo(e.Location); if (hi.InRowCell) { if (hi.Column.RealColumnEdit.GetType() == typeof(RepositoryItemCheckEdit)) { view.FocusedRowHandle = hi.RowHandle; view.FocusedColumn = hi.Column; view.ShowEditor(); CheckEdit checkEdit = view.ActiveEditor as CheckEdit; CheckEditViewInfo checkInfo = (CheckEditViewInfo)checkEdit.GetViewInfo(); Rectangle glyphRect = checkInfo.CheckInfo.GlyphRect; GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; Rectangle gridGlyphRect = new Rectangle(viewInfo.GetGridCellInfo(hi).Bounds.X + glyphRect.X, viewInfo.GetGridCellInfo(hi).Bounds.Y + glyphRect.Y, glyphRect.Width, glyphRect.Height); if (!gridGlyphRect.Contains(e.Location)) { view.CloseEditor(); if (!view.IsCellSelected(hi.RowHandle, hi.Column)) { view.SelectCell(hi.RowHandle, hi.Column); } else { view.UnselectCell(hi.RowHandle, hi.Column); } } else { checkEdit.Checked = !checkEdit.Checked; view.CloseEditor(); } (e as DevExpress.Utils.DXMouseEventArgs).Handled = true; } } } }
void RefreshAppearance(GridViewInfo viewInfo, GridRowInfo rowInfo, GridColumn column) { if (column != null) { GridDataRowInfo dataRow = rowInfo as GridDataRowInfo; if (dataRow != null) { var cell = dataRow.Cells[column]; if (cell != null) { cell.State = DevExpress.XtraGrid.Views.Base.GridRowCellState.Dirty; } } } else { rowInfo.SetDataDirty(); } }
public Bitmap GetRowDragBitmap(int rowHandle) { Bitmap bmpView = null; Bitmap bmpRow = null; GridViewInfo info = _view.GetViewInfo() as GridViewInfo; Rectangle totalBounds = info.Bounds; GridRowInfo ri = info.GetGridRowInfo(rowHandle); Rectangle imageBounds = new Rectangle(new Point(0, 0), ri.Bounds.Size); try { bmpView = new Bitmap(totalBounds.Width, totalBounds.Height); using (Graphics gView = Graphics.FromImage(bmpView)) { using (XtraBufferedGraphics grView = XtraBufferedGraphicsManager.Current.Allocate(gView, new Rectangle(Point.Empty, bmpView.Size))) { Color color = ri.Appearance.BackColor == Color.Transparent ? Color.White : ri.Appearance.BackColor; grView.Graphics.Clear(color); IntPtr handle = View.GridControl.Handle; DXPaintEventArgs paintArgs = new DXPaintEventArgs(new PaintEventArgs(grView.Graphics, totalBounds), handle); DevExpress.Utils.Drawing.GraphicsCache cache = new DevExpress.Utils.Drawing.GraphicsCache(paintArgs); GridViewDrawArgs args = new GridViewDrawArgs(cache, info, totalBounds); DrawRow(args, ri); grView.Graphics.FillRectangle(args.Cache.GetSolidBrush(Color.Transparent), ri.Bounds); grView.Render(); bmpRow = new Bitmap(ri.Bounds.Width, ri.Bounds.Height); using (Graphics gRow = Graphics.FromImage(bmpRow)) { using (XtraBufferedGraphics grRow = XtraBufferedGraphicsManager.Current.Allocate(gRow, new Rectangle(Point.Empty, bmpRow.Size))) { grRow.Graphics.Clear(color); grRow.Graphics.DrawImage(bmpView, imageBounds, ri.Bounds, GraphicsUnit.Pixel); grRow.Render(); } } } } } catch { } return(bmpRow); }
protected virtual void grv_TopRowChanged <T>(object sender, EventArgs e, IList <T> ListData, string query, SqlParameter[] parameters) where T : class, new() { GridView view = sender as GridView; GridViewInfo vi = view.GetViewInfo() as GridViewInfo; List <GridRowInfo> lstRowsInfo = new List <GridRowInfo>(vi.RowsInfo.Where(x => x.VisibleIndex != -1)); for (int i = lstRowsInfo.Count - 1; i >= 0; i--) { if (view.IsRowVisible(lstRowsInfo[i].VisibleIndex) != RowVisibleState.Visible || view.IsNewItemRow(lstRowsInfo[i].VisibleIndex)) { lstRowsInfo.RemoveAt(i); } } int LastRow = GetGridViewLastRow(view); int RowCount = ListData.Count - 1; //if (LastRow == RowCount) // clsFunction<T>.Instance.SelectAsync(this, view.GridControl, ListData, query, parameters); }
protected override void DrawRegularRow(GridViewDrawArgs e, GridDataRowInfo ri) { base.DrawRegularRow(e, ri); if (ri.IsMasterRow && ri.MasterRowExpanded) { GridView detailView = View.GetDetailView(ri.RowHandle, 0) as GridView; if (detailView == null) { return; } int level = 0; Point p1; Point p2; GridCellInfo cell = ri.Cells[View.VisibleColumns[0]]; int center; if (cell != null) { center = cell.CellButtonRect.Left + cell.CellButtonRect.Width / 2; } else { center = ri.DetailIndentBounds.Left + ri.DetailIndentBounds.Width / 2; } GridViewInfo detailViewInfo = (GridViewInfo)detailView.GetViewInfo(); foreach (GridRowInfo rowInfo in detailViewInfo.RowsInfo) { if (detailView.IsRowVisible(rowInfo.RowHandle) != RowVisibleState.Visible) { continue; } level = rowInfo.Bounds.Top + rowInfo.Bounds.Height / 2; p1 = new Point(center, level); p2 = new Point(ri.DetailIndentBounds.Right, level); e.Cache.DrawLine(Pens.Black, p1, p2); } p1 = new Point(center, ri.DetailIndentBounds.Top); p2 = new Point(center, level); e.Cache.DrawLine(Pens.Black, p1, p2); } }
private void gridView1_KeyDown(object sender, KeyEventArgs e) { //if (e.KeyData == (Keys.Control| Keys.R)) //{ // _iSearch = 0; //} //if (!IsDieuXe) //{ // if (e.KeyData == Keys.Enter) // { // GridEnter(); // } // //else if (e.KeyData == Keys.D1 || e.KeyData == Keys.NumPad1) // //{ // // _iSearch = 0; // // GridDaDonDuocKhach(); // //} // return; //} if (e.KeyData == Keys.Enter) { GridEnter(); } if (e.KeyData == Keys.Apps) { GridViewInfo info = (GridViewInfo)gridView_Bookings.GetViewInfo(); GridCellInfo cell = info.GetGridCellInfo(gridView_Bookings.FocusedRowHandle, gridView_Bookings.FocusedColumn); if (cell != null && cell.Bounds != null) { cMenu.Show(shGridControl_Bookings, cell.Bounds.X + cell.Column.Width / 2, cell.Bounds.Y + cell.RowInfo.RowLineHeight / 2); } } //else if (e.KeyData == Keys.Delete) //{ // //_iSearch = 0; // //GridDelete(); //} //else if (e.KeyData == Keys.D1 || e.KeyData == Keys.NumPad1) //{ // _iSearch = 0; // GridDaDonDuocKhach(); //} }
private int GetColumnBestHeight(GridViewInfo viewInfo, GridColumn column, int height) { GridColumnInfoArgs ex = viewInfo.ColumnsInfo[column]; if (ex == null) { viewInfo.GInfo.AddGraphics(null); ex = new GridColumnInfoArgs(viewInfo.GInfo.Cache, null); try { ex.InnerElements.Add(new DrawElementInfo(new GlyphElementPainter(), new GlyphElementInfoArgs(viewInfo.View.Images, 0, null), StringAlignment.Near)); if (viewInfo.View.CanShowFilterButton(null)) { ex.InnerElements.Add(viewInfo.Painter.ElementsPainter.FilterButton, new GridFilterButtonInfoArgs()); } ex.SetAppearance(viewInfo.PaintAppearance.HeaderPanel); ex.Caption = column.Caption; ex.CaptionRect = new Rectangle(0, 0, column.Width - 20, 17); } finally { viewInfo.GInfo.ReleaseGraphics(); } } GraphicsInfo grInfo = new GraphicsInfo(); grInfo.AddGraphics(null); ex.Cache = grInfo.Cache; bool canDrawMore = true; Size captionSize = CalcCaptionTextSize(grInfo.Cache, ex as HeaderObjectInfoArgs, column.GetCaption()); Size res = ex.InnerElements.CalcMinSize(grInfo.Graphics, ref canDrawMore); //res.Height = Math.Max(res.Height, captionSize.Height); res.Height = height; res.Width += captionSize.Width; //res = viewInfo.Painter.ElementsPainter.Column.CalcBoundsByClientRectangle(ex, new Rectangle(Point.Empty, res)).Size; //res =new Size(180, 33); grInfo.ReleaseGraphics(); return(res.Height); }
private void CopyCells(IOrderedEnumerable <IGrouping <Int32, GridCell> > rows, RichEditDocumentServer srv, Table table) { GridViewInfo viewInfo = (GridViewInfo)gridView1.GetViewInfo(); int i = 1; foreach (var row in rows) { row.OrderBy(z => z.Column.VisibleIndex); int j = 0; foreach (var c in row) { TableCell cell = GetCell(table, i, j); srv.Document.InsertText(cell.Range.Start, gridView1.GetRowCellDisplayText(c.RowHandle, c.Column)); GridCellInfo gridCellInfo = GetGridCellInfo(viewInfo, c); cell.BackgroundColor = gridCellInfo.Appearance.BackColor; j++; } i++; } }
private void gridView1_CalcRowHeight(object sender, DevExpress.XtraGrid.Views.Grid.RowHeightEventArgs e) { if (((sender as GridView)).IsGroupRow(e.RowHandle)) { GridViewInfo viewInfo = (sender as GridView).GetViewInfo() as GridViewInfo; // height indents calculating int singleLineTextHeight = viewInfo.PaintAppearance.GroupRow.CalcTextSizeInt(viewInfo.GInfo.Graphics, "Wg", 100).Height; int groupRowTextOffset = e.RowHeight - singleLineTextHeight; string groupRowDisplayText = viewInfo.View.GetGroupRowDisplayText(e.RowHandle); // current group row width obtaining int requredWidth = viewInfo.ViewRects.Rows.Width - viewInfo.Painter.ElementsPainter.RowPreview.GetPreviewIndent(viewInfo) * (viewInfo.View.GetRowLevel(e.RowHandle) + 2); // required group row height calculating int requiredGroupRowTextHeight = viewInfo.PaintAppearance.GroupRow.CalcTextSizeInt(viewInfo.GInfo.Graphics, groupRowDisplayText, requredWidth).Height; e.RowHeight = requiredGroupRowTextHeight + groupRowTextOffset; } }
public override Point GetDistance(GridViewInfo viewInfo) //x = distance, y == y { Point res = Point.Empty; if (IsEmpty) { return(res); } Rectangle rect = GetCurrentScrollableBounds(viewInfo); res.X = -(this.topPixelPosition - viewInfo.View.TopRowPixel); if (Math.Abs(res.X) > 0) { res.Y = rect.Y; if (res.X < 0) { res.Y = rect.Y + Math.Abs(res.X); } } return(res); }
private void ColumnSynk() { GridViewInfo viewInfo2 = gridViewPanel2.GetViewInfo() as GridViewInfo; if (viewInfo2.VScrollBarPresence != panel2State) { panel2State = viewInfo2.VScrollBarPresence; if (viewInfo2.VScrollBarPresence == ScrollBarPresence.Visible) { gridViewPanel1.VertScrollVisibility = ScrollVisibility.Always; RefreshData(); } else { if (FixedRows.Count != 0 || gridViewPanel1.VertScrollVisibility != ScrollVisibility.Auto) { gridViewPanel1.VertScrollVisibility = ScrollVisibility.Never; } } } }
private int GetColumnBestHeight(GridViewInfo viewInfo, GridColumn column) { var ex = viewInfo.ColumnsInfo[column]; if (ex == null) { viewInfo.GInfo.AddGraphics(null); ex = new GridColumnInfoArgs(viewInfo.GInfo.Cache, null); try { ex.InnerElements.Add(new DrawElementInfo(new GlyphElementPainter(), new GlyphElementInfoArgs(viewInfo.View.Images, 0, null), StringAlignment.Near)); if (viewInfo.View.CanShowFilterButton(null)) { ex.InnerElements.Add(viewInfo.Painter.ElementsPainter.FilterButton, new GridFilterButtonInfoArgs()); } ex.SetAppearance(viewInfo.PaintAppearance.HeaderPanel); ex.Caption = column.Caption; ex.CaptionRect = new Rectangle(0, 0, column.Width - 20, 17); } finally { viewInfo.GInfo.ReleaseGraphics(); } } var grInfo = new GraphicsInfo(); grInfo.AddGraphics(null); ex.Cache = grInfo.Cache; var canDrawMore = true; var captionSize = CalcCaptionTextSize(grInfo.Cache, ex, column.GetCaption()); var res = ex.InnerElements.CalcMinSize(grInfo.Graphics, ref canDrawMore); res.Height = Math.Max(res.Height, captionSize.Height); res.Width += captionSize.Width; res = viewInfo.Painter.ElementsPainter.Column.CalcBoundsByClientRectangle(ex, new Rectangle(Point.Empty, res)) .Size; grInfo.ReleaseGraphics(); return res.Height; }
public override ColumnsLayoutCalculator CreateCalculator(GridViewInfo viewInfo, bool autoWidth) { return new BandedViewColumnsLayoutCalculator(viewInfo); }
public BandedViewColumnsLayoutCalculator(GridViewInfo viewInfo) : base(viewInfo) { }