/// <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(); }
/// <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); }