我正在为学校项目创建一个ASCII接口,但我遇到了一些问题。
Output & properties window for CMD |Screenshot|
我最初修改颜色对眼睛来说更容易,并且更美观,因为我倾向于使用那个'cmd.exe',但看起来它又回来了我。柔软的深蓝色带金丝雀黄色文字,看起来还不错。显然,Console.ConsoleColor从我在cmd.exe属性窗口中修改的颜色中获取其所有颜色。不好!我不明白为什么这两者是分开的:/
那里的任何人都知道如何覆盖这个托盘?我希望有一些东西可以让我在代码中设置RGB,但是如果有办法访问System.Drawing.Color托盘那将是kickass!
我在这里编程很新,所以我非常感谢一个解释得很好的答案,但我并不挑剔:P
以下是创建上述输出的代码:
//show a title
Console.Title = "Contact Book";
//set up the console window all nice like
Console.SetWindowSize(80, 50);
Console.SetBufferSize(80, 50);
//my attempt to reset the colors :( does not work
Console.ResetColor();
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
//write some stuff... :/
Console.WriteLine("{0} {1}", Console.LargestWindowWidth, Console.LargestWindowHeight);
Console.WriteLine("11111111112222222222333333333344444444445555555555666666666667777777777888888888889999999999900000000000");
for (int i = 2; i != 10; i++)
{
Console.WriteLine("{0}", i);
}
PS:会嵌入图像,但这是我第一次在stackoverflow.com上,所以我没有代表:)
答案 0 :(得分:3)
这完全是设计上的。控制台应用程序只能显示16种不同的颜色。快捷方式属性允许用户自定义这些颜色,就像控制面板中的显示小程序允许她更改GUI应用程序的Windows主题颜色一样。覆盖用户的偏好几乎不是一个错误。
但是你可以通过设置SetConsoleScreenBufferEx()API函数在Vista和Win7上运行。 Boilerplate代码(在C中)位于this thread,访问pinvoke.net以获取您需要的声明。