如何重画移出屏幕的东西?c#

本文关键字:何重画 移出 屏幕 | 更新日期: 2023-09-27 18:04:13

所以我创建了这个包含字母的"矩形图形"。我原以为它会停留在"可视控制台"的顶端(就像……当用户输入更多文本时将向下滚动,等等。我想这个术语将是"浮动"头。

这是它的代码,以及'字母表'的代码

private static void headerFile()
{
    Console.Clear();
    firstColumn = Console.CursorLeft;
    firstRow = Console.CursorTop;
    int HEADER_HEIGHT = 6;
    int columnNumber = Console.WindowWidth - 1;
    var xcoord = 0;
    var ycoord = 0;
    for (int i = 0; i < columnNumber; i++)
    {
        headerWindow("-", i, 0);
        headerWindow("-", i, HEADER_HEIGHT);
    }
    for (int i = 0; i < HEADER_HEIGHT; i++)
    {
        headerWindow("|", 0, i);
        headerWindow("|", columnNumber, i);
    }
    headerWindow("+", xcoord = 0, ycoord = 0);
    headerWindow("+", xcoord = columnNumber, ycoord = 0);
    headerWindow("+", xcoord = 0, ycoord = 6);
    headerWindow("+", xcoord = columnNumber, ycoord = 6);
}
private static void letterChoices()
{
    string[] alphabetSelection = File.ReadAllLines("alphabet.txt");
    for (int i = 0; i < alphabetSelection.Length; i++)
    {
        //headerWindow("|", 0, 3);
        headerWindow(alphabetSelection[i], i*3+1, 1);
        //Console.Write("'n ");
        Console.SetCursorPosition(0, 7);
    }
    //return;
}

所以有可能有一个浮动的"图形",保持在控制台窗口的顶部?或者,当它的顶部移动到可视区域以下时,是否有可能自动"重新绘制"相同的东西?

如果我必须重新绘制矩形,是否有办法保存屏幕状态,清空控制台,然后重新绘制所有进度,就像程序重新开始一样,但所有的"输入"(如选定的字母等)都保留在屏幕上。

顺便说一句,这是'hangman'。此外,请尽量不要为我写代码-只是让我知道,如果它可以做到,我可能需要看看为了做这样的事情。:)

如何重画移出屏幕的东西?c#

啊。所以对于每一个动作,它每次都会重新绘制。现在,鉴于这是一个小程序,你认为它需要多长时间每次重新绘制?

运行此命令并按Enter键几次。

它展示了几乎整个屏幕每次都被重新绘制:

static void Main(string[] args)
{
    while(true)
    {
        Console.Clear();
        Console.WriteLine("Top");
        for (int x = 0; x < Console.WindowWidth; x++)
        {
            for (int y = 1; y < Console.WindowHeight - 1; y++)
            {
                Console.SetCursorPosition(x, y);
                Console.Write("X");
            }
        }
        Console.SetCursorPosition(0, Console.WindowHeight - 1);
        Console.Write("Prompt: ");
        Console.ReadLine();
    }
}

它不是最漂亮的,但这是一个控制台应用程序。你想要什么?div =)