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

问题描述

Figure 1

图1:底部是滚动条,顶部是固定的。

因此,我正在编写一个CLI .NET Core应用程序。我在顶部有一个横幅,看起来非常优雅。拍照很高兴,但实际上不会持续很长时间。我希望横幅保持在屏幕顶部,同时使命令部分在横幅下方滚动。有没有一种方法不需要DLL导入或平台锁定?我希望它可以跨平台运行,谢谢。

解决方法

如果可以给您一个想法,您可以尝试一下。根据这篇文章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("----------------------------------------------");
}

输出:
enter image description here