Дополнительно
C#: Получить полный размер рабочего стола?
Как узнать размер всего рабочего стола? Не "рабочая область" и не "разрешение экрана", оба из которых относятся только к одному экрану. Я хочу узнать общую ширину и высоту виртуального рабочего стола, часть которого отображается на каждом мониторе.
74
9
У вас есть два варианта:
Объект systemparameters.VirtualScreenWidth Объект systemparameters.VirtualScreenHeight
Системы сведения.VirtualScreen.Ширина Системы сведения.VirtualScreen.Высота
Используйте первый вариант если вы разрабатываете приложения WPF.
Я думаю, что пришло время обновить этот ответ с помощью LINQ, который позволяет легко получить весь размер рабочего стола с помощью одного выражения.
Ниже приведен мой первоначальный ответ:
Я думаю, что вам нужно что-то вроде этого:
Имейте в виду, что это еще не вся история. Возможно, что несколько мониторов расположены в шахматном порядке или имеют непрямоугольную форму. Поэтому может оказаться, что не все пространство между (minx, miny) и (maxx, maxy) видно.
EDIT:
Я только что понял, что код может быть немного проще, если использовать
Rectangle.Union
:Проверьте:
Это не отвечает на вопрос, а просто добавляет дополнительную информацию о точке (местоположении) окна в пределах всех экранов).
Используйте приведенный ниже код, чтобы узнать, находится ли точка (например, последнее известное местоположение окна) в границах всего Рабочего стола. Если нет, сбросьте местоположение окна на значение по умолчанию pBaseLoc;
Код не учитывает панель задач или другие панели инструментов, вы можете сделать это самостоятельно.
Пример использования: Сохраните расположение окна в базе данных со станции A. Пользователь входит на станцию B с двумя мониторами и перемещает окно на второй монитор, выходит из системы, сохраняя новое местоположение. Возвращается на станцию A и окно не будет отображаться, если не использовать вышеприведенный код.
Дальнейшее решение было реализовано путем сохранения идентификатора пользователя и IP станции (& winLoc) в базу данных или локальный файл пользовательских префов для данного приложения, а затем загрузки пользовательских префов для этой станции & приложения.
Чтобы получить физический размер пикселя монитора, вы можете использовать это.
Вы можете использовать границы системы.Рисунок`.
Вы можете создать функцию, как это
и чем вы можете получить один, два и т. д. в переменной такой:
затем вы можете сделать границы экрана:
С помощью этого кода Вы получите все свойства, как
ширина
,высота
и т. д.Этот метод возвращает прямоугольник, который содержит все экраны' границы, используя самые низкие значения, для левой и верхней, и высшими ценностями для правой и нижней...
Я думаю, что лучший способ попасть в "Реал" и экран-размер, чтобы получить значения прямо из видео-контроллер.
Это должно сделать работу ;) Привет ...
Получить размер виртуальный дисплей без каких-либо зависимостей