示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
            }
        }
示例#6
0
        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--;
                }
            }
        }