是否可以防止部分控制台在 .NET 中滚动?

Is it possible to keep portions of the console from scrolling in .NET?

图 1:底部用于滚动,而顶部用于保持不动。

所以我正在编写 CLI .NET Core 应用程序。

图像的顶部保持不变,而底部滚动到顶部下方。

如果能更直接地访问控制台,那就更容易了。但正如我们在 C# 中,我所知道的不存在这样的 (cross-platform) 访问。

那么,如果没有 platform-locking,我将如何在这里实现预期目标?

你可以试试这个,如果它能给你一个想法。基于此 post C# Console : How to make the console stop scrolling automatically?.

static readonly int maxLine = 10;
static int currentLine = 0;

static void Main(string[] args)
{
    setHeader();

    while (true)
    {
        writeLine("Please type and enter:");
        string value = Console.ReadLine();
        writeLine($"Your input is: {value}");
        writeLine($"Current Line: {currentLine}");

        if (currentLine > maxLine)
        {
            resetCursorPosition();
            writeLine($"Your input is: {value}");
            writeLine($"Current Line: {currentLine}");
        }
    }
}

private static void writeLine(string value)
{
    Console.WriteLine(value);
    currentLine = currentLine + 1;
}

private static void resetCursorPosition()
{
    Console.Clear();
    Console.SetCursorPosition(0, 0);
    currentLine = 0;

    setHeader();
}

private static void setHeader()
{
    writeLine("----------------------------------------------");
    writeLine("---------------MY CUSTOM HEADER---------------");
    writeLine("----------------------------------------------");
}

输出: