protected override void OnDraw(Canvas canvas) { base.OnDraw(canvas); var context = canvas.NativeDeviceContext; const float border = 2; var format = canvas.GetTextFormat(Font); var brush = canvas.GetBrush(Color); var rect = new RectangleF(border, border, Size.X - border * 2, Size.Y - border * 2); float percentage = (Value - Minimum) / (Maximum - Minimum); context.FillRectangle(new RectangleF(rect.X, rect.Y, rect.Width * percentage, rect.Height), brush); rect.X += border; rect.Width -= border * 2; format.ParagraphAlignment = ParagraphAlignment.Center; brush.Color = Forecolor.ToRawColor4(); format.TextAlignment = TextAlignment.Leading; context.DrawText(Text, format, rect, brush); format.TextAlignment = TextAlignment.Trailing; context.DrawText(Value.ToString(), format, rect, brush); }
protected override void OnDraw(Canvas canvas) { base.OnDraw(canvas); var format = canvas.GetTextFormat(Font); var brush = canvas.GetBrush(Forecolor); format.ParagraphAlignment = ParagraphAlignment.Center; format.TextAlignment = TextAlignment.Center; for (int i = 0; i < Items.Count; i++) { var item = Items[i]; var metric = metrics[item]; var rect = new RectangleF(metric.Position.X, metric.Position.Y, metric.Size.X, metric.Size.Y); if (i == hover) { brush.Color = InterfaceColors.ControlHover.ToRawColor4(); canvas.NativeDeviceContext.FillRectangle(rect, brush); brush.Color = Forecolor.ToRawColor4(); } canvas.NativeDeviceContext.DrawText(item.Text ?? "", format, rect, brush); } }
public virtual void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("Text", Text); info.AddValue("Forecolor", Forecolor.ToArgb().ToString()); info.AddValue("Backcolor", Backcolor.ToArgb().ToString()); info.AddValue("Indent", Indent); if (mFont != null) { info.AddValue("Font", Serialize.AddFont(mFont)); } info.AddValue("Parent", Parent); info.AddValue("Table", Table); Serialize.SerializeTag(info, Tag); }
public override void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("Heading", Heading); info.AddValue("SubHeading", SubHeading); info.AddValue("HeadingHeight", HeadingHeight); info.AddValue("Expanded", Expanded); info.AddValue("DrawExpand", DrawExpand); info.AddValue("ExpandedSize", Serialize.AddSizeF(ExpandedSize)); info.AddValue("ContractedSize", Serialize.AddSizeF(ContractedSize)); info.AddValue("GroupHeight", GroupHeight); info.AddValue("RowHeight", RowHeight); info.AddValue("Indent", Indent); info.AddValue("Font", Serialize.AddFont(Font)); info.AddValue("Forecolor", Forecolor.ToArgb().ToString()); info.AddValue("Groups", Groups); info.AddValue("Rows", Rows); info.AddValue("SelectedItem", SelectedItem); info.AddValue("DrawSelectedItem", DrawSelectedItem); base.GetObjectData(info, context); }
protected override void OnDraw(Canvas canvas) { base.OnDraw(canvas); var context = canvas.NativeDeviceContext; var brush = canvas.GetBrush(Forecolor); var format = canvas.GetTextFormat(Font); format.ParagraphAlignment = ParagraphAlignment.Center; format.TextAlignment = TextAlignment.Leading; for (int i = 0; i < Items.Count; i++) { var rect = new RectangleF(Margin, Margin + 40 * i, Size.X - Margin * 2, 40); if (selectedItem == i) { brush.Color = InterfaceColors.ControlHover.ToRawColor4(); context.FillRectangle(rect, brush); brush.Color = Forecolor.ToRawColor4(); } rect.X += 10; rect.Width -= 20; context.DrawText(Items[i].Text ?? "", format, rect, brush); } }
private void DrawItems(TreeItemCollection items, ref DrawContext context) { foreach (var item in items) { if (hover?.item == item) { context.brush.Color = Color.ToRawColor4(); context.canvas.NativeDeviceContext.FillRectangle(hover.bounds, context.brush); context.brush.Color = (checkHover ? Backcolor : Forecolor).ToRawColor4(); } if (item.Children.Count > 0) { var select = new RectangleF(context.indent * context.indentWidth + 10, (context.offset + 0.5f) * context.lineHeight - 8, 16, 16); context.canvas.NativeDeviceContext.FillRectangle(select, context.brush); } context.brush.Color = Forecolor.ToRawColor4(); if (item.Text != null) { var rect = new RectangleF(context.indent * context.indentWidth + 30, context.offset++ *context.lineHeight, Width, context.lineHeight); context.canvas.NativeDeviceContext.DrawText(item.Text, context.format, rect, context.brush); } if (item.Expanded && item.Children.Count > 0) { context.indent++; DrawItems(item.Children, ref context); context.indent--; } } }