private void gtv_OnDrawHeaderCol(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.DrawHeaderColEventArgs e) { Rectangle rCol = e.ColumnRect; e.Graphics.FillRectangle(Brushes.WhiteSmoke, rCol); rCol = e.ColumnRect; rCol.Height = 6; SortDirection sortCol = gtv.Header.GetSorting(e.Column); if (sortCol != SortDirection.None) { using (GeniusLinearGradientBrush gbrush = new GeniusLinearGradientBrush(FSelectedBrush.EndColor, FSelectedBrush.BeginColor, 90)) { using (Brush br = gbrush.GetBrush(rCol)) { e.Graphics.FillRectangle(br, rCol); } } DrawSortingIcone(e.Graphics, rCol, sortCol); } rCol = e.ColumnRect; rCol.Height -= 7; rCol.Y += 7; StringFormat sf = new StringFormat(StringFormatFlags.NoWrap); sf.LineAlignment = e.Column.VAlignment; sf.Alignment = e.Column.Alignment; using (Brush br = new SolidBrush(e.Column.ForeColor)) { e.Graphics.DrawString(e.Column.Text, e.Column.Font, br, rCol, sf); } e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Left, e.ColumnRect.Top, rCol.Left, rCol.Bottom); e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Right, e.ColumnRect.Top, rCol.Right, rCol.Bottom); e.DefaultDrawing = false; }
void gtv_OnBeforePainting(GeniusTreeView Sender, PaintNodeEventArgs e) { //painture du dégradé dans le fond du control GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.FromArgb(243, 241, 230), Color.FromArgb(227, 225, 208)); e.Info.graphics.FillRectangle(br.GetBrush(this.ClientRectangle), this.ClientRectangle); }
private void geniusTreeView1_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e) { if (e.Node.Data is Group) { Graphics g = e.Info.graphics; using (Font f = new Font(this.Font.Name, this.Font.Size, FontStyle.Bold)) { StringFormat sf = new StringFormat(StringFormatFlags.NoWrap); sf.LineAlignment = StringAlignment.Center; g.DrawString(e.Node.Text, f, Brushes.Black, e.Info.NodeRect, sf); } Rectangle r = e.Info.NodeRect; r.Width /= 2; GeniusLinearGradientBrush glb = new GeniusLinearGradientBrush(Color.LightBlue, Color.White); using (Brush br = glb.GetBrush(r)) { using (Pen p = new Pen(br, 1)) { g.DrawLine(p, r.X, r.Bottom - 1, r.Right - 1, r.Bottom - 1); } } e.Info.Font = null; e.Info.DefaultDrawing = false; } else { if (e.Node.Data is GroupTotal) { e.Info.DrawingOptions &= ~DrawingOption.ShowGridLines; e.Info.Font = new Font(this.geniusTreeView1.Font.Name, this.geniusTreeView1.Font.Size, FontStyle.Bold); } e.Info.DefaultDrawing = true; } }
private void DrawRoundRect(GeniusLinearGradientBrush geniusBr, Pen pen, Rectangle r, Graphics g) { using (Brush br = geniusBr.GetBrush(r)) { DrawingHelper.FillRoundRect(g, br, r, 5, 5); } DrawingHelper.DrawRoundRect(g, pen, r, 5, 5); }
private void gtv_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e) { if (e.Node.Data is VistaGroup) { Rectangle r; VistaGroup group = e.Node.Data as VistaGroup; e.Info.DefaultDrawing = false; //painture du noeud sous la souris ou du noeud selectionné if (e.Node == FUnderMouse || IsSelected(e.Node)) { r = e.Info.NodeRect; r.Inflate(-2, 0); r.Height -= 1; //RoundRect GeniusLinearGradientBrush geniusBr = e.Node == FUnderMouse ? FOverBrush : FSelectedBrush; DrawRoundRect(geniusBr, FSelLinePen, r, e.Info.graphics); } SizeF size = e.Info.graphics.MeasureString(group.Name, gtv.Font); e.Info.graphics.DrawString(group.Name, gtv.Font, Brushes.Black, e.Info.NodeRect.X + 5, e.Info.NodeRect.Y + e.Info.NodeRect.Height / 2 - size.Height / 2); int y = (e.Info.ContentRect.Bottom + e.Info.ContentRect.Top) / 2; int x = (int)size.Width + e.Info.ContentRect.X + 10; e.Info.graphics.DrawLine(Pens.LightGray, x, y, e.Info.ContentRect.Right - 25, y); //dessin des ligne des colonne //à faire x = e.Info.NodeRect.Left; foreach (GeniusTreeViewColonne aCol in gtv.Header.Displays) { e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, x, e.Info.NodeRect.Top, x, e.Info.NodeRect.Bottom); x += aCol.Width; } //e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, e.Info.NodeRect.Left, e.Info.NodeRect.Top, e.Info.NodeRect.Left, e.Info.NodeRect.Bottom); //dessin de l'expand à droite Pen p = new Pen(Brushes.Gray); p.Width = 3; p.EndCap = LineCap.ArrowAnchor; r = new Rectangle(e.Info.ContentRect.Right - 15, y, 0, 0); r.Inflate(7, 7); Debug.WriteLine(string.Format("m : {0}, r:{1}", e.Info.MousePosition, r)); if (r.Contains(e.Info.MousePosition)) { using (Brush br = FSelectedBrush.GetBrush(r)) { e.Info.graphics.FillEllipse(br, r); e.Info.graphics.DrawEllipse(Pens.LightGray, r); } } if (e.Node.IsExpanded) { e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y + 2, e.Info.ContentRect.Right - 15, y - 3); } else { e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y - 2, e.Info.ContentRect.Right - 15, y + 3); } } }
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { using (TextureBrush br = new TextureBrush(bmp, WrapMode.Tile)) { br.RotateTransform(25); GeniusLinearGradientBrush gbr = new GeniusLinearGradientBrush(br); e.Graphics.FillRectangle(gbr.GetBrush(this.DisplayRectangle), this.DisplayRectangle); } }
void gtv_OnPaintNodeBackGround(GeniusTreeView Sender, PaintNodeEventArgs e) { //paint du noeud racine if (e.Node.Level == 1) { using (GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.FromArgb(220, 221, 203), Color.FromArgb(196, 193, 176), 90)) { Rectangle r = e.Info.NodeRect; r.Inflate(0, -1); r.Height -= 1; using (Brush b = br.GetBrush(r)) { e.Info.graphics.FillRectangle(b, r); using (Pen p = new Pen(Color.FromArgb(220, 221, 203))) { e.Info.graphics.DrawLine(p, r.Left, r.Top, r.Right, r.Top); } using (Pen p = new Pen(b)) { e.Info.graphics.DrawLine(p, r.Left, r.Bottom + 1, r.Right, r.Bottom + 1); } } } } else if (e.Node.Level == 2) { //painture du noeud sous la souris ou du noeud selectionné if (e.Node == FUnderMouse || e.Node == FSelected) { Rectangle r = e.Info.NodeRect; r.Inflate(-4, 0); r.Height -= 1; e.Info.graphics.FillRectangle(e.Node == FUnderMouse ? FOverBrush : FSelectedBrush, r); e.Info.graphics.DrawRectangle(FSelLinePen, r); } } }
private void geniusTreeView1_OnDrawCellNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e) { int colindex; colindex = Sender.Header.DisplayIndexToIndex(e.Info.DisplayColumn); DataNodeImage data = e.Node.Data as DataNodeImage; if (data != null) { if (colindex == 1) { e.Info.DefaultDrawing = false; LoadBitmap(data); //e.graphics.DrawImage(data.Bmp, e.CellRect); Rectangle destRect = new Rectangle(e.Info.NodeRect.Location, data.Bmp.Size); int offsetx = (e.Info.NodeRect.Width - data.Bmp.Size.Width) / 2; destRect.Offset(offsetx, 0); e.Info.graphics.DrawImage(data.Bmp, destRect, 0, 0, data.Bmp.Size.Width, data.Bmp.Size.Height, GraphicsUnit.Pixel); } } else if (colindex == 1) { bool selected = false; e.Info.DefaultDrawing = false; System.Random rnd = new Random(); Rectangle r = e.Info.NodeRect; if ((e.Node.State & NodeState.Selected) == NodeState.Selected && geniusTreeView1.SelectedColumn == 1) { selected = true; geniusTreeView1.DrawSelectedRectangle(e.Info.graphics, e.Info.NodeRect, true, e.Info); } r.Y += 1; r.Height -= 1; r.Inflate(-2, -5); r.Width = rnd.Next(r.Width) + 1; //car je ne veux pas de zéro int pourcent = (int)(((double)r.Width / (double)(e.Info.NodeRect.Width - 4)) * 100); using (GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.Blue, Color.LightBlue, 90)) { using (Brush b = br.GetBrush(r)) { /* * Pen p = new Pen(b, r.Height); * p.DashCap = DashCap.Flat; * p.DashStyle = DashStyle.Custom; * p.DashPattern = new float[]{0,10,11,20}; * e.graphics.DrawLine(p, r.Left+1, r.Top + r.Height / 2, r.Right, r.Top + r.Height / 2); */ e.Info.graphics.FillRectangle(b, r); r.Width = e.Info.NodeRect.Width - 4; if (r.Width == 0) { r.Width = 1; } e.Info.graphics.DrawRectangle(selected ? Pens.White : Pens.Black, r); StringFormat sf = new StringFormat(StringFormatFlags.NoWrap); sf.LineAlignment = StringAlignment.Center; sf.Alignment = StringAlignment.Center; sf.Trimming = StringTrimming.EllipsisCharacter; e.Info.graphics.DrawString(String.Format("{0} %", pourcent), this.Font, pourcent >= 55 || selected ? Brushes.White : Brushes.Black, e.Info.NodeRect, sf); } } } }