如何在控制台应用程序中获取屏幕大小?
var w = Console.WindowWidth;
var h = Console.WindowHeight;
--编辑--
Screen.PrimaryScreen.Bounds
Screen.PrimaryScreen.WorkingArea
Screen
类。这可能是一种解决方案,但我认为不建议使用,因为您只为如此微小的目的添加了一个大依赖项。 - Robert S.如果你想改变控制台应用程序的大小以适应屏幕大小,我们首先需要获取窗口的最大宽度和高度。
var largestWindowX = Console.LargestWindowWidth;
var largestWindowY = Console.LargestWindowHeight;
if(largestWindowX >= 200 && largestWindowY >= 62)
{
//The values 200 and 40 can be changed depending on what you are making
Console.SetWindowSize(200, 40);
}
//add more if else statments depending how you wish to scale it as.
else
{
//Otherwise any screen size smaller than the sizes added make it this...
Console.SetWindowSize(/*Your X value*/, /*Your Y value*/);
}
如果您想从操作系统中查找显示器大小的方法,我不知道,因为我不是高级程序员,只是了解其中一些知识。
但是,您可以在某种程度上使用上述变量的值。例如:
if(largestWindowX == 240 && largestWindowY == 66)
{
Console.WriteLine("This is a 1920x1080 screen");
}
我不确定这是一种准确的屏幕尺寸说法。否则,如果需要全屏,则可以使用Alt+Enter...
如果您想获取显示器的尺寸,可以使用 WMI(Windows 管理工具)。
var scope = new ManagementScope();
scope.Connect();
var query = new ObjectQuery("SELECT * FROM Win32_VideoController");
using (var searcher = new ManagementObjectSearcher(scope, query))
{
var results = searcher.Get();
foreach (var result in results)
{
Console.WriteLine("Horizontal resolution: " + result.GetPropertyValue("CurrentHorizontalResolution"));
Console.WriteLine("Vertical resolution: " + result.GetPropertyValue("CurrentVerticalResolution"));
}
}
System.Windows.Forms
的引用,而Iliya Tryapitsin的解决方案则依赖于操作系统。很遗憾,在控制台应用程序中没有简单的跨操作系统的方法来解决这个问题。 - Robert S.