示例#1
0
        protected override void OnPaint(ConsoleBitmap context)
        {
            var borderChar = new ConsoleCharacter(' ', Foreground, BorderColor);

            context.DrawRect(borderChar, 0, 0, Width, Height - 1);
            context.DrawLine(borderChar, 1, 1, 1, Height - 1);
            context.DrawLine(borderChar, Width - 2, 1, Width - 2, Height - 1);
            // todo - that minus 3 should be a 2, but I'm not sure why this makes it work.
            // I'm afraid there's an off by 1 somewhere deep in the code that processes rectangles.
            // I'll need to investigate at some point. If I end up fixing that bug then it's likely this line
            // will stop working.  So if it ever looks like the content of this panel is not having it's last line
            // painted then it's likely that I fixed the other bug and this this.Height - 3 needs to be changed to a this.Height - 2.
            context.NarrowScope(2, 1, this.Width - 4, this.Height - 3);
            base.OnPaint(context);
        }
示例#2
0
 /// <summary>
 /// Paints this control
 /// </summary>
 /// <param name="context">the drawing surface</param>
 protected override void OnPaint(ConsoleBitmap context)
 {
     foreach (var control in GetPaintOrderedControls())
     {
         Rectangle myScope = context.Scope;
         try
         {
             var w = control.X >= 0 ? control.Width : control.Width + control.X;
             var h = control.Y >= 0 ? control.Height: control.Height + control.Y;
             context.NarrowScope(control.X, control.Y, w, h);
             if (control.Width > 0 && control.Height > 0)
             {
                 control.Paint(context);
             }
         }
         finally
         {
             context.Scope = myScope;
         }
     }
 }