Я делаю что-то подобное в своей программе:
Int32 currentMonitorCount = Screen.AllScreens.Length;
if (currentMonitorCount < 2)
{
//Put app in single screen mode.
}
else
{
//Put app in dual screen mode.
}
ОЧЕНЬ важно, что мое приложение распознает, сколько мониторов в настоящее время подключено.
Однако после того, как я несколько раз подключаю/отключаю монитор, Screen.AllScreens.Length всегда возвращает "2".
Мой монитор знает, что он не подключен (он включил режим энергосбережения), и панель управления знает, что она не подключена (отображается только один монитор).
Так что мне не хватает? Как я могу понять, что есть только один монитор?