Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在特定位置获取控制台背景_C#_.net_Console - Fatal编程技术网

C# 在特定位置获取控制台背景

C# 在特定位置获取控制台背景,c#,.net,console,C#,.net,Console,我有一个用C#编写的非常简单的控制台应用程序。打印文本时更改背景和前景颜色非常容易,但我想知道是否有一种简单的方法可以确定特定位置的背景和前景颜色 这不是一个基本特性,所以我对p-Invoke等不感兴趣。如果它不能在1分钟内完成,那么我就不做了 编辑 我在找像这样的东西 Console.GetBackground(0,0); 我在MSDN文档中没有看到类似的内容,但我希望我可能错过了一些简单的内容。查找前景色和背景。并使用setcursorposition更改控制台位置 希望它能工作。好吧,您

我有一个用C#编写的非常简单的控制台应用程序。打印文本时更改背景和前景颜色非常容易,但我想知道是否有一种简单的方法可以确定特定位置的背景和前景颜色

这不是一个基本特性,所以我对p-Invoke等不感兴趣。如果它不能在1分钟内完成,那么我就不做了

编辑

我在找像这样的东西

Console.GetBackground(0,0);
我在MSDN文档中没有看到类似的内容,但我希望我可能错过了一些简单的内容。

查找前景色和背景。并使用
setcursorposition
更改控制台位置


希望它能工作。

好吧,您可以创建一个类,获取控制台的宽度和高度,映射每个可能的坐标,然后跟踪每个颜色更改以及颜色更改时的坐标。这样,您就可以遍历到您感兴趣的点 看看控制台当时是什么颜色


我认为,实施这项计划不会太长。。。我认为可能有更好的方法。

在.NET中没有内置的功能能够提供以前在控制台中任意位置使用的前景和背景色


感谢offlinehacker为Windows API文档提供了一个。虽然这可能提供了一个解决方案,但实现对我来说太复杂了。(我放弃了这项工作,但如果成本效益比发生变化,我可能会再试一次。)

你有没有发现任何编程任务,无论多么小,都可以在一分钟内完成?键入
Console.BackgroundColor=ConsoleColor.Black只花了我不到一分钟的时间。你的问题是关于不设置,不是吗?我问这个问题是希望发现一个我不知道的已经构建的.NET功能。似乎很清楚,没有这样的功能,我自己也不想推出一个。不过,感谢您的关注。
Console.Foreground
Console.Background
不按字符颜色跟踪字符。设置或重置后,更改为全局更改。设置光标位置不会将这些值更新为上次在该位置使用的设置。我发现这可能会有所帮助。似乎没有可用于该任务的.net api,因此您必须使用
kernel32.dll
中的本机api。可以找到如何导入其中一个api的示例。这并不像我第一次教的那么简单。最后一条评论+1-非常有趣和有用的API。但太过牵扯到我不必要的要求。不过,如果这种情况再次出现,我们会记住这一点。谢谢(你可能想编辑你的评论以显示前台和后台的正确用法)这主意不错,如果我真的需要这个功能,我会使用它,但是时间投入太多了。谢谢你。