示例#1
0
        public static CharAndColor Set(this Colors src, char c)
        {
            var @char = new CharAndColor()
            {
                Char = new CharInfo()
                {
                    UnicodeChar = c, Attributes = src.ToAttributes()
                },
                Attributes = src.ToAttributes()
            };

            return(@char);
        }
示例#2
0
        public static void SelfTest()
        {
            SafeFileHandle h      = OpenConsole();
            int            width  = Console.WindowWidth;
            int            height = Console.WindowHeight;

            if (!h.IsInvalid)
            {
                CharAndColor[] buf  = new CharAndColor[width * height];
                ConsoleRegion  rect = new ConsoleRegion()
                {
                    StartX = 0, StartY = 0, EndX = (short)width, EndY = (short)height
                };

                var chars = Encoding.ASCII.GetBytes("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
                var r     = new Random(123);
                for (int background = 550; background >= 0; background--)
                {
                    for (short x = 0; x < width; x++)
                    {
                        for (short y = 0; y < height; y++)
                        {
                            int xy = y * width + x;
                            buf[xy].Attributes     = SetColors(r.Next(16), 0);
                            buf[xy].Char.AsciiChar = chars[r.Next(chars.Length)];
                        }
                    }
                    // this is the flush, to flush a region of a buffer to the screen
                    bool b = WriteConsoleOutputW(h, buf,
                                                 new COORD()
                    {
                        X = (short)width, Y = (short)height
                    },                                                       // buffer size
                                                 new COORD()
                    {
                        X = 0, Y = 0
                    },                                 // where on the actual console will we be writing.
                                                 ref rect);
                }
            }
        }