예제 #1
0
        /// <summary>
        /// Muestra el menu creado con un color de fondo y de letra determinado.
        /// </summary>
        /// <param name="posInicialArriba">posicion inicial superior</param>
        /// <param name="posInicialIzquierda">posicion inicial izquierda</param>
        /// <param name="colorFondo">El color que se va a pintar la consola</param>
        /// <param name="colorLetra">El color que se va a pintar las letras</param>
        public void MostrarMenu(int posInicialArriba, int posInicialIzquierda, ConsoleColor colorFondo, ConsoleColor colorLetra)
        {
            if (Titulo == null || Opciones == null || Mensaje == null)
            {
                throw new ValoresNulosException("Error: Porfavor asigna el titulo, el contenido y el mensaje.");
            }

            Console.ForegroundColor = colorLetra;

            int anchura             = 10;
            int altura              = Opciones.Length + 3;
            int longitudMaxOpciones = Opciones.Max(x => x.Length);

            if (longitudMaxOpciones > Titulo.Length && longitudMaxOpciones > Mensaje.Length)
            {
                anchura += longitudMaxOpciones;
            }
            else if (Mensaje.Length > Titulo.Length)
            {
                anchura += Mensaje.Length;
            }
            else
            {
                anchura += Titulo.Length;
            }

            marco = new Marco(posInicialArriba, posInicialIzquierda, altura, anchura);

            marco.DibujarConsola(colorFondo);

            if (_tipo == Tipo.Doble)
            {
                marco.DibujarMarcoDoble();
            }
            else
            {
                marco.DibujarMarcoSimple();
            }

            Console.SetCursorPosition(posInicialIzquierda + 1, posInicialArriba + 1);
            Console.WriteLine(Titulo.PadLeft(Titulo.Length + 5));

            Console.CursorTop++;

            for (int i = 0; i < Opciones.Length - 1; i++)
            {
                Console.CursorLeft = posInicialIzquierda + 1;
                Console.WriteLine("".PadLeft(5) + Opciones[i]);
            }
            Console.CursorLeft = posInicialIzquierda + 1;
            Console.WriteLine("".PadLeft(8) + Opciones.Last());


            Console.CursorTop++;

            Console.CursorLeft = posInicialIzquierda + 1;
            Console.Write(Mensaje);

            Console.ResetColor();
        }
예제 #2
0
        /// <summary>
        /// Muestra el menu creado con la posición de inicio por defecto.
        /// </summary>
        public void MostrarMenu()
        {
            if (Titulo == null || Opciones == null || Mensaje == null)
            {
                throw new ValoresNulosException("Error: Porfavor asigna el titulo, el contenido y el mensaje.");
            }

            int posDefecto          = 10;
            int anchura             = 10;
            int altura              = Opciones.Length + 3;
            int longitudMaxOpciones = Opciones.Max(x => x.Length);

            if (longitudMaxOpciones > Titulo.Length && longitudMaxOpciones > Mensaje.Length)
            {
                anchura += longitudMaxOpciones;
            }
            else if (Mensaje.Length > Titulo.Length)
            {
                anchura += Mensaje.Length;
            }
            else
            {
                anchura += Titulo.Length;
            }

            marco = new Marco(posDefecto, posDefecto, altura, anchura);

            if (_tipo == Tipo.Doble)
            {
                marco.DibujarMarcoDoble();
            }
            else
            {
                marco.DibujarMarcoSimple();
            }

            Console.SetCursorPosition(posDefecto + 1, posDefecto + 1);
            Console.WriteLine(Titulo.PadLeft(Titulo.Length + 5));
            Console.CursorTop++;

            for (int i = 0; i < Opciones.Length; i++)
            {
                Console.CursorLeft = posDefecto + 1;
                Console.WriteLine(Opciones[i].PadRight(longitudMaxOpciones));
            }

            Console.CursorTop++;
            Console.CursorLeft = posDefecto + 1;
            Console.Write(Mensaje);
        }