private static void PrintFrames(ConsoleOperations ops, IConsole console) { var text1Colors = new ConsoleFontColor(Color.Gold, Color.Black); var text2Colors = new ConsoleFontColor(Color.Brown, Color.Black); var text3Colors = new ConsoleFontColor(Color.Black, Color.Silver); var frame2Colors = new ConsoleFontColor(Color.Silver, Color.Black); var solidFrameTextColors = new ConsoleFontColor(Color.Red, Color.Yellow); var solidFrameColors = new ConsoleFontColor(Color.Yellow, Color.Black); FrameStyle block3Frame = new FrameStyle(frame2Colors, text3Colors, @"┌─┐││└─┘", '░'); FrameStyle doubleFrame = new FrameStyle(frame2Colors, text3Colors, @"╔═╗║║╚═╝", '▒'); FrameStyle solidFrame = new FrameStyle(solidFrameColors, solidFrameTextColors, @"▄▄▄██▀▀▀", '▓'); ops.WriteTextBox(5, 5, 50, 7, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor.", text1Colors); ops.WriteTextBox(25, 15, 80, 37, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.", text2Colors); ops.WriteTextBox(new Rectangle(26, 26, 60, 20), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.", block3Frame); ops.WriteTextBox(new Rectangle(80, 10, 30, 7), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.", doubleFrame); ops.WriteTextBox(new Rectangle(100, 20, 25, 7), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.", solidFrame); console.WriteText(0, 20, "", Color.Gray, Color.Black); // reset Console.ReadLine(); console.Clear(); }
private static void Main(string[] args) { ConsoleColorsHelper helper = new ConsoleColorsHelper(); //helper.ReplaceConsoleColor(ConsoleColor.DarkCyan, Color.Salmon); helper.ReplaceConsoleColors( new Tuple <ConsoleColor, Color>(ConsoleColor.DarkCyan, Color.Chocolate), new Tuple <ConsoleColor, Color>(ConsoleColor.Blue, Color.DodgerBlue), new Tuple <ConsoleColor, Color>(ConsoleColor.Yellow, Color.Gold), new Tuple <ConsoleColor, Color>(ConsoleColor.DarkBlue, Color.MidnightBlue) ); IConsole console = new SystemConsole(helper); ConsoleOperations ops = new ConsoleOperations(console); console.WriteText(0, 0, "test message", Color.Red, Color.Black); console.WriteText(0, 1, "test message 2", Color.Cyan, Color.YellowGreen); console.WriteText(0, 2, "test message 3d ds sfsdfsad ", Color.Orange, Color.Plum); console.WriteText(0, 3, "test messaf sdf s sfsdfsad ", Color.DarkOliveGreen, Color.Silver); console.WriteText(0, 4, "tsd fsfsd fds fsd f fa fas fad ", Color.AliceBlue, Color.PaleVioletRed); console.WriteText(0, 5, "tsd fsfsd fds fsd f fa fas fad ", Color.Blue, Color.CadetBlue); console.WriteText(0, 6, "tsd fsdfsdfsd fds fa fas fad ", Color.Maroon, Color.ForestGreen); // lol: http://stackoverflow.com/questions/3811973/why-is-darkgray-lighter-than-gray console.WriteText(0, 10, "test message", Color.Gray, Color.Black); console.WriteText(0, 11, "test message 2", Color.DarkGray, Color.Black); console.WriteText(0, 12, "test message 3d ds sfsdfsad ", Color.DimGray, Color.Black); console.WriteText(0, 20, "", Color.Gray, Color.Black); // reset var props = typeof(Color).GetProperties(BindingFlags.Static | BindingFlags.Public).Where(p => p.PropertyType == typeof(Color)); foreach (var propertyInfo in props) { Color c = (Color)propertyInfo.GetValue(null); ConsoleColor cc = helper.FindClosestColor(c); Console.ForegroundColor = cc; Console.WriteLine("{0,-25} {1,-18} #{2,-8}", propertyInfo.Name, Enum.GetName(typeof(ConsoleColor), cc), c.ToArgb().ToString("X")); } var text1Colors = new ConsoleFontColor(Color.Gold, Color.Black); var text2Colors = new ConsoleFontColor(Color.Brown, Color.Black); var text3Colors = new ConsoleFontColor(Color.Black, Color.Silver); var frame2Colors = new ConsoleFontColor(Color.Silver, Color.Black); var solidFrameTextColors = new ConsoleFontColor(Color.Red, Color.Yellow); var solidFrameColors = new ConsoleFontColor(Color.Yellow, Color.Black); FrameDefinition block3Frame = new FrameDefinition(frame2Colors, text3Colors, @"┌─┐││└─┘", '░'); FrameDefinition doubleFrame = new FrameDefinition(frame2Colors, text3Colors, @"╔═╗║║╚═╝", '▒'); FrameDefinition solidFrame = new FrameDefinition(solidFrameColors, solidFrameTextColors, @"▄▄▄██▀▀▀", '▓'); //console.Clear(); ops.WriteTextBox(5, 5, 50, 7, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor.", text1Colors); ops.WriteTextBox(25, 15, 80, 37, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.", text2Colors); ops.WriteTextBox(new Rectangle(26, 26, 60, 20), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.", block3Frame); ops.WriteTextBox(new Rectangle(80, 10, 30, 7), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.", doubleFrame); ops.WriteTextBox(new Rectangle(100, 20, 25, 7), @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.", solidFrame); console.WriteText(0, 20, "", Color.Gray, Color.Black); // reset Console.ReadLine(); }
/// <inheritdoc /> public void Run(IConsole console) { console.Clear(); var exitGuid = new Guid(@"a7725515-7f82-4c18-9c36-343003bdf20d"); var menuItems = new ConsoleMenuItem[] { new ConsoleMenuItem { Enabled = true, Caption = "menu item number one", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = true, Caption = "menu item number two", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = false, Caption = "menu item number three", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = true, Caption = "menu item number four with very long description", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = false, Caption = "menu item number five", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = true, Caption = "menu item number six", Code = Guid.NewGuid() }, new ConsoleMenuItem { Enabled = true, Caption = "Exit menu DEMO", Code = exitGuid } }; var menuStyling = new MenuStyles { ActiveItem = new ConsoleFontColor(Color.Red, Color.Black), DisabledItem = new ConsoleFontColor(Color.Gray, Color.Black), NormalItem = new ConsoleFontColor(Color.WhiteSmoke, Color.Black), SelectedItem = new ConsoleFontColor(Color.Black, Color.LightGray), Alignment = TextAlign.Center }; var aConsole = new AtomicConsole(console); int menuStartY = 6; int menuStartX = 5; int menuContentWidth = 25; var frameColors = new ConsoleFontColor(Color.Yellow, Color.Black); var boxInnerColors = new ConsoleFontColor(Color.WhiteSmoke, Color.Black); var frameStyle = new FrameStyle(frameColors, boxInnerColors, @"┌─┐││└─┘", ' '); var ops = new ConsoleOperations(aConsole); ops.WriteTextBox(new Rectangle(menuStartX - 1, menuStartY - 1, menuContentWidth + 2, menuItems.Length + 2), "", frameStyle); var menu = new ConsoleMenu(aConsole, new Rectangle(menuStartX, menuStartY, menuContentWidth, 0), menuItems, menuStyling); menu.RenderAll(); ConsoleMenuItem result = null; while (result == null || result.Code != exitGuid) { result = menu.Focus(resetActiveItem: true); aConsole.CleanLineSync(0, Color.Black); aConsole.RunAtomicOperations(ac => { aConsole.SetCursorPosition(0, 0); aConsole.PrintColorfullText( new KeyValuePair <ConsoleFontColor, string>(new ConsoleFontColor(Color.BlanchedAlmond, Color.Black), @"Selected menu: "), new KeyValuePair <ConsoleFontColor, string>(new ConsoleFontColor(Color.Gold, Color.Black), result?.Caption ?? "#NULL#") ); }); Thread.Sleep(1000); } aConsole.SetCursorPosition(0, menuStartY + menuItems.Length + 1); aConsole.ShowCursor(); aConsole.WaitForNextPage(); }