📜  如何在控制台应用程序中居中文本 - C# (1)

📅  最后修改于: 2023-12-03 15:38:40.056000             🧑  作者: Mango

如何在控制台应用程序中居中文本 - C#

在控制台应用程序中,如果想要让文本居中显示,可以使用以下方法。

第一种方法

使用控制台输出时,可以使用Console.SetCursorPosition方法来定位光标位置,从而实现居中显示文本。

string text = "居中文本";
int left = (Console.WindowWidth / 2) - (text.Length / 2);
int top = Console.CursorTop;
Console.SetCursorPosition(left, top);
Console.WriteLine(text);

在这个示例中,我们先计算出光标应该放置的位置。计算方法是将控制台窗口宽度除以2,再减去文本长度的一半,得到文本应该放置的左侧位置。然后用Console.SetCursorPosition将光标移动到这个位置,最后输出我们想要的文本。

第二种方法

如果想要输出一个居中的文本框,可以使用如下代码。

string text = "居中文本";
int width = Console.WindowWidth;
int height = Console.WindowHeight;
int left = (width / 2) - (text.Length / 2);
int top = (height / 2) - 1;
Console.Clear();

for (int i = 0; i < height; i++)
{
    Console.WriteLine("");
}

for (int i = 0; i < top; i++)
{
    Console.Write("\n");
}

Console.Write(new string(' ', left));
Console.Write(text);

for (int i = left + text.Length; i < width; i++)
{
    Console.Write(" ");
}

for (int i = top + 1; i < height; i++)
{
    Console.Write("\n");
}

Console.Read();

这个方法与第一种方法不同,它会输出一个文本框,并将文本居中显示在文本框中。可以看到,代码相对较长。

首先,我们计算出屏幕的宽度和高度。然后,我们计算出文本框的左侧和顶部位置,以及文本框的右侧和底部位置。接下来,我们使用Console.Clear方法来清空控制台,并输出与控制台高度相同的空行。我们使用循环来移动光标到文本框的顶部位置,并输出空行。然后,我们移动光标到文本框的左侧位置,并输出文本。最后,我们用空格填充文本框右侧的空白区域,并且使用循环来输出剩余的空行。如果我们在这个示例的最后添加Console.Read语句,程序将等待用户输入,然后窗口将保持打开状态。

总的来说,控制台应用程序中实现居中文本有多种方法,我们可以选择合适的方法来实现自己的需求。