在控制台窗口上叠加文字?

4
我找不到的是,在C#控制台应用程序中是否可以编写某种层以覆盖现有窗口和文本,例如进度条或信息。

我看过一些PowerShell cmdlet,它们可以显示进度条,当进度条完成后,进度条消失,下面的任何东西都可见。我看到的进度条即使有额外的控制台输出导致窗口滚动也会保持在原位。

有人有什么想法吗?

编辑:这里是PowerShell使用Write-Progress进行操作的示例。

http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-18-metablogapi/8726.WES_2D00_1_2D00_29_2D00_11_2D00_2_5F00_2587E97F.jpg


1
我猜这是通过每次更新进度条并重新显示时清除屏幕完成的,但也许还有其他方法。 - Gray
你可以使用Console.SetCursorPosition做任何你想做的事情。通常,当某些东西似乎“在顶部”时,这只意味着程序正在存储重写之前所需的内存中的信息,以便重新创建它。 - Servy
1个回答

5

非常有趣,谢谢!我会仔细阅读这个的,但看起来它会做到我所要求的,谢谢 :) - Ashigore
很遗憾,您的开发源链接似乎已经失效。我在PowerShell源代码中找到了一个神奇的地方: https://github.com/PowerShell/PowerShell/blob/master/src/Microsoft.PowerShell.ConsoleHost/host/msh/ProgressPane.cs - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接